インターフェイスに多数のプロパティがある場合、この例では、達成しようとしていることを示すため、1 つだけを使用します。
interface IFoo
{
[Bar()]
string A { get; set; }
}
class Base { }
class Foo : Base, IFoo
{
public string A { get; set; }
}
だから私はこれを行うとき:
Foo f = new Foo();
f.A = "Value";
Attribute b = Attribute.GetCustomAttribute(f.GetType().GetProperty("A"), typeof(Bar));
Bar
属性のインスタンスを取得できると期待していました。これのほとんどは汎用クラスで行われており、検証モデルに属性を使用しているため、インターフェイスに暗黙的にキャストできず、インターフェイスのプロパティの属性を取得できません。インターフェイスがどのタイプになるかがわからないためです。またはどのタイプがそれを実装しますか。たとえば、インスタンスから属性を取得する方法が必要ですBase
。
public void GenericMethod<T>(T instance) where T : Base
{
//Get my instance of Bar here.
}
私がやろうとしていることは明らかです。よろしくお願いします。