- - PR -
プロパティ名の間接指定
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-12-24 21:02
お世話様です。
あるコントロールのプロパティ名とその値がペアとなっているような list情報があるとします。 そのコントロールを動的に生成してインスタンス化する際、そのlist情報の プロパティ名を用いて、各プロパティに値を設定したいのですが、 どの様な記述をすれば良いのでしょうか。 つまりプロパティ名を間接的に指定したいのです。 あるコントロールにどういうプロパティがあるかを全て取得し、 その各プロパティの値が何になっているかを取得するプログラム が分かれば、いける様にも思いますが。 どちらにしても具体的な記述がわかりません。 よろしくお願いします。 | ||||
|
投稿日時: 2004-12-25 00:37
リフレクションを使用すれば可能かと思います。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconReflectionOverview.asp | ||||
|
投稿日時: 2004-12-27 10:03
burton999さん、こんにちは。
リフレクションで出来そうですね。 勉強してみます。 ありがとうございました。 | ||||
|
投稿日時: 2004-12-29 22:33
コントロールのプロパティが対象の場合、使用目的によっては、
System.ComponentModel.PropertyDescriptor クラスを 使用したほうがいいかもしれません。 PropertyDescriptor の取得には、TypeDescriptor.GetProperties メソッド を使用します。 最終的には内部でリフレクションが使用されているのですが、 リフレクションを活用した機能が色々と実装されているので それらを独自に実装する手間が省けます。 たとえば、質問にあったlist情報を外部ファイルに保存しなければならない場合、 PropertyDescriptor.ShouldSerializeValue メソッドを使用することで、 保存するプロパティの数を最小限に抑える、などということができます。 | ||||
|
投稿日時: 2005-01-05 14:12
k-nakさん、遅ればせながらコメントありがとうございます。
これから見てみます。 ただ、List情報の形式が既に決められているので、シリアライズ化メソッドは 使えないかも知れません。 |
1