bindingflags.ignorecase type.getProperty ()에서 작동하지 않습니까?
-
06-07-2019 - |
문제
다음을 상상해보십시오
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이라고 부르는 클래스의 일부입니다.
제휴하지 않습니다 StackOverflow