私はリフレクションを使用してこのコード行を設定する方法を思い付くしようとしているいくつかの助けを必要とする:複素反射シナリオ
this.extensionCache.properties[attribute]
= new ExtensionCacheValue((object[]) value);
this.extensionCacheが継承する基底クラスイムで内部のプライベートフィールドです。
私は次のコードでextensionCacheフィールドで取得できます。
FieldInfo field = typeof(Principal).GetField("extensionCache",BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
しかし、私は、私のクラスのインスタンスに設定されたインデックスとプロパティメソッドを呼び出す方法を見つけ出すことはできません見通しがない
extensionCacheは、次のタイプである:いくつかその背景はどここれらすべてであるSystem.DirectoryServices.AccountManagement.Principalを拡張しようとしているイムを助けた場合はここで
internal class ExtensionCache
{
private Dictionary<string, ExtensionCacheValue> cache
= new Dictionary<string, ExtensionCacheValue>();
internal ExtensionCache()
{
}
internal bool TryGetValue(string attr, out ExtensionCacheValue o)
{
return this.cache.TryGetValue(attr, out o);
}
// Properties
internal Dictionary<string, ExtensionCacheValue> properties
{
get
{
return this.cache;
}
}
}
は値クラスは
internal ExtensionCacheValue(object[] value)
{
this.value = value;
this.filterOnly = false;
}
です方法は生きる。
参照方法:ExtensionSet
ありがとうございました。