質問

私は、実行時におけるタイプに属性を追加するTypeDescriptor.AddAttributesを使用することができます。どのように私は、メソッドおよびパラメータに同じことを行うのですか? (多分2つの別々の質問...)

役に立ちましたか?

解決

TypeDescriptor.AddAttributesは、の非常にの特定のユースケースに影響を与えます。即ちSystem.ComponentModel内から。 の反射のの残りのため、それは余分な属性に関するの何ものを知りません。そして実際、System.ComponentModelは本当に方法やパラメータには適用されません。

だから、要するに、あなたがすることはできません。あなたは(別注)どこかにこの情報を保存し、コンパイル時にそれを追加する必要があります。

他のヒント

私はリフレクターでTypeDescriptorクラスを分析することからわかるように、.AddAttributes方法は、内部.AddProviderメソッドを呼び出します。それに渡されたTypeDescriptionProviderインスタンスは、実際のメタデータを提供する責任があります。あなたのクラスに[TypeDescriptionProviderAttribute]属性を追加してみてくださいとTypeDescriptionProviderクラスから派生させ、独自のプロバイダを実装することができます。ドキュメントが言うように、TypeDescriptionProvider.CreateInstanceをオーバーライドすることによって、あなたは、そのタイプのすべての必要な属性を持つ代替物を提供することができます。私は属性も有効になります置換型内のメソッドに適用されると思われます。しかし、私は自分自身が、そう...

を試して自由に感じることを試していません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top