foovar.GetType().GetProperty("PropertyName").GetValue(foovar)
リフレクションを通じて可変変数のプロパティ値を取得するために広く使用しています。ただし、インターフェイス タイプでは機能しないようです。
IFoo foo = GetFoo();
string fooName= foo.Name; //It works perfectly
サードパーティのアセンブリを使用しているため、実装にアクセスできません。「名前」プロパティがあり、値を取得できます。しかし、反省することはできません。
試してみるとstring s = (string)foo.GetType().GetProperty("Name").GetValue(foo);
、null エラーが発生します:「名前」プロパティがありません
確認PropertyInfo[] pi = foo.GetType().GetProperties();
したところ、約 200 のプロパティが表示されますが、これらのどれも「名前」ではありません。実際、他の多くの「intellisense プロパティ」は表示されません。
インターフェイス型のプロパティの値を取得するにはどうすればよいですか?
ありがとう!