Ich brauche Hilfe mit einem Weg zu kommen versuchen, diese Codezeile setzen Reflexion mit:Complex Reflection Szenario
this.extensionCache.properties[attribute]
= new ExtensionCacheValue((object[]) value);
this.extensionCache ist ein internes privates Feld in dem im Basisklasse erbt aus.
Ich kann mit dem folgenden Code am extensionCache Feld erhalten:
FieldInfo field = typeof(Principal).GetField("extensionCache",BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
Aber ich kann nicht herausfinden, wie die Eigenschaften Methode mit einem Index nennen setzen sie dann auf eine Instanz einer Klasse, die ich habe keine Sichtbarkeit.
extensionCache ist der folgenden Art:
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;
}
}
}
Hier ist der Wert der Klasse
internal ExtensionCacheValue(object[] value)
{
this.value = value;
this.filterOnly = false;
}
Wenn einige backgroud hilft im System.DirectoryServices.AccountManagement.Principal zu erweitern versuchen, die, wo alle diese ist Methoden leben.
Siehe Methode: ExtensionSet
Vielen Dank für Ihre Hilfe.