난 반사를 사용하여 코드 줄을 설정하는 방법을 마련하려고 도움이 필요 :복잡한 반사 시나리오
this.extensionCache.properties[attribute]
= new ExtensionCacheValue((object[]) value);
this.extensionCache은 상속 기본 클래스 메신저의 내부 전용 필드입니다.
나는 다음 코드로 extensionCache 필드에서 얻을 수 있습니다 :
FieldInfo field = typeof(Principal).GetField("extensionCache",BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
하지만 다음 인덱스 속성 메서드를 호출하는 클래스의 인스턴스에 설정하는 방법을 알아낼 수 I 이상 가시성이 없습니다.
다음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;
}
어떤 배경에서 메신저 어디 이러한 모든 인 System.DirectoryServices.AccountManagement.Principal을 확장하려고 도움이된다면 :
extensionCache는 다음과 같은 유형이다 방법은 살아 간다.
참조 방법 : ExtensionSet에 당신의 도움에 대한
감사합니다.