다음을 상상해보십시오
유형 T에는 회사 필드가 있습니다. 다음 방법을 실행할 때 완벽하게 작동합니다.
Type t = typeof(T);
t.GetProperty("Company")
Whith 다음 호출은 null이됩니다.
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
아무도 아이디어가 있습니까?
답변
기본 조회 플래그를 덮어 썼습니다. 새 플래그를 지정하면 속성을 찾을 수 있도록 모든 정보를 제공해야합니다. 예를 들면 다음과 같습니다.BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
답변
당신은 추가해야합니다 BindingFlags.Public | BindingFlags.Instance
답변
고마워요, 오늘 정말 도움이되었습니다. 감사 정보가 저장되었지만 속성 이름에 대 / 소문자가 잘못되었습니다. (감사는 데이터 계층에 내장되어 있습니다.) 어쨌든 IgnoreCase를 바인딩 플래그로 추가해야했지만 동료가이 답변을 찾을 때까지 여전히 작동하지 않았습니다. 결과 기능 :
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이라고 부르는 클래스의 일부입니다.