문제

제 3 자 총회에서 선언 된 내부로 표시된 일부 회원에 액세스해야합니다.

클래스의 특정 내부 속성에서 값을 반환하고 싶습니다. 그런 다음 반환 된 값의 속성에서 값을 검색하고 싶습니다. 그러나 이러한 속성은이 제 3 자 총회에서 내부 및 선언 된 유형을 반환합니다.

내가 본이 작업의 예는 간단하고 int 또는 bool을 반환하는 것을 보여줍니다. 누군가 더 복잡한 사례를 처리하는 예제 코드를 제공 할 수 있습니까?

도움이 되었습니까?

해결책

반환 된 값 (또는 PropertyInfo의 속성 유형)을 계속 파고 들었습니다.

sing System;
using System.Reflection;
public class Foo
{
    public Foo() {Bar = new Bar { Name = "abc"};}
    internal Bar Bar {get;set;}
}
public class Bar
{
    internal string Name {get;set;}
}
static class Program
{
    static void Main()
    {
        object foo = new Foo();
        PropertyInfo prop = foo.GetType().GetProperty(
            "Bar", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        object bar = prop.GetValue(foo, null);
        prop = bar.GetType().GetProperty(
            "Name", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
        object name = prop.GetValue(bar, null);

        Console.WriteLine(name);
    }
}

다른 팁

항상 객체로 검색하고 반환 된 유형에 반사를 사용하여 메소드를 호출하고 속성에 액세스 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top