|
.NET TIPS クラス名指定のインスタンス作成時にコンストラクタへ引数を渡すには?[C#、VB]デジタルアドバンテージ 岸本 真二郎2009/03/19 |
![]() |
|
|
|
クラス名を表す文字列からインスタンスを生成する方法については、「TIPS:文字列で指定したクラスのインスタンスを作成するには?」で紹介しているが、ここではインスタンスを生成する際に、コンストラクタに引数を渡す方法を紹介する。
また、上記TIPSではActivatorクラス(System名前空間)のCreateInstanceメソッドを使っているが、ここでは別の例として、実行中のアセンブリからAssemblyクラス(System.Reflection名前空間)のオブジェクトを取得し、そのCreateInstanceメソッドを使ってみる。
AssemblyクラスのCreateInstanceメソッド
AssemblyクラスのCreateInstanceメソッドは、引数の異なる3種類のメソッドが用意されているが、コンストラクタの引数が指定できるのは、7個のパラメータを持つCreateInstanceメソッドだ。その記述例を以下に示す。
指定すべき引数の数が多いが、ローカル環境で実行する場合(リモート・オブジェクトを扱わない場合)の引数の指定は複雑ではない。インスタンスの生成に必要な最低限の引数は、クラス名の文字列と、コンストラクタに引数として渡すobject型のオブジェクトの配列である。
| ||
| Assemblyオブジェクトからのインスタンス生成(上:C#、下:VB) |
このリストに示しているとおり、インスタンス化するクラス名は、名前空間を含めたフルネームで指定する必要がある。Visual StudioでVBを使用していて、現在のアプリケーションの名前空間が分からない場合には、プロジェクトのプロパティを開いて、[アプリケーション]タブにある「ルート名前空間」を確認すればよい。![]()
| カテゴリ:クラス・ライブラリ 処理対象:リフレクション 使用ライブラリ:Assemblyクラス(System.Reflection名前空間) 関連TIPS:文字列で指定したクラスのインスタンスを作成するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
Insider.NET フォーラム 新着記事
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
@IT 新着記事
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
お勧め求人情報
転職/派遣情報を探す
**先週の人気講座ランキング**
〜 Android編 〜
ホワイトペーパー(TechTargetジャパン)
ソリューションFLASH


