2010-12-03 8 views
1

公開APIのアセンブリでリフレクションを使用しています。System.CodeDOMと一緒に作業して、APIを通じて情報を抽出するコードを生成しています。get_PropertyName()/ set_PropertyName()とPropertyName?

私の自動生成されたコードの一部では、APIアセンブリのさまざまな種類のプロパティの値を参照しています。しかし、私は実際に生成されたコードに存在しないプロパティへの参照で終わっています。私はType.GetProperties()を使用しましたが、私が理解しているところからは公共財産のみを返すべきです。

は、私はさらにそれに見て、私は不足しているプロパティを持っていたとき get_SamplePropertyset_SamplePropertyが、実際の SamplePropertyプロパティと呼ばれるクラスの代わりに、2つの方法がありました、 SamplePropertyと呼ばれると言うことがわかりました。

ここでは何が起こっていますか?なぜインテリセンスはこれらのメソッドを別々のメソッドとして扱いますか?しかし、リフレクションによって返されるときにプロパティとして表示されますか?

+0

私は[SSCCE](http://pscode.org/sscce.html)が手伝ってくれると思います。 –

答えて

5

私はPropertyInfo.GetProperties()を使用しました。私が理解しているところからは、publicプロパティのみを返すべきです。

初めてのハングアップの可能性がありますが、PropertyInfoクラスにはGetPropertiesメソッドがありません。 Typeクラスはそうです。そうでなければ、実際にType.GetMethods()を使用していることを示します。はい、プロパティのget_Blahおよびset_Blahプロパティアクセサメソッドを返します。実際にはプロパティはメソッドとして実装されています。

Type.GetProperties()を使用してプロパティを反映させます。

+0

+1あなたの答えが来た時、全く同じように書いていました。 =) –

+0

申し訳ありませんが、私はType.GetProperties() –

関連する問題