문제

다음을 상상해보십시오

Type T에는 현장 회사가 있습니다. 다음 방법을 실행할 때 완벽하게 작동합니다.

Type t = typeof(T);
t.GetProperty("Company")

다음 호출을 통해 나는 널 얻습니다

Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)

아무도 아이디어가 있습니까?

도움이 되었습니까?

해결책

기본 조회 플래그를 덮어 쓴 경우 새 플래그를 지정하면 속성을 찾을 수 있도록 모든 정보를 제공해야합니다. 예를 들어: BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance

다른 팁

추가해야합니다 BindingFlags.Public | BindingFlags.Instance

고마워요 감사 정보가 저장되었지만 속성 이름에 잘못된 케이스가 있습니다. (감사는 DatalAyer에 내장되어 있습니다.) 어쨌든 나는 gnorecase를 바인딩 플래그로 추가해야했지만 동료 가이 답을 찾을 때까지는 여전히 작동하지 않았습니다. 결과 기능 :

public static void SetProperty(Object R, string propertyName, object value)
{
    Type type = R.GetType();
    object result;
    result = type.InvokeMember(
        propertyName, 
        BindingFlags.SetProperty | 
        BindingFlags.IgnoreCase | 
        BindingFlags.Public | 
        BindingFlags.Instance, 
        null, 
        R, 
        new object[] { value });
}

이것은 내가 dotmagic이라고 부르는 클래스의 일부입니다.

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