제목은 거의 다 말합니다. 컴파일러가 생성되면 get {get; 설정;} 속성?FieldInfo가 컴파일러 생성 백킹 필드인지 확인합니다.
나는 나의 FieldInfos를 얻기 위해이 코드를 실행 해요 :
Class MyType
{
private int foo;
public int bar {get; private set; }
}
Type type = TypeOf(MyType);
foreach (FieldInfo fi in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.NonPublic))
{
// Gets both foo and bar, however bar is called <bar>k__backingfield.
}
그래서 질문은, 어떻게 든 그 이름을 확인에 의존하지 않고의 fieldInfo가 backingfield 것을 감지 할 수 있습니까? (꽤 문서화되어 있지 않고 프레임 워크의 다음 버전에서 깨질 수 있습니다.)
왜 호기심에서 알아야합니까? (대답에 영향을 미칠 수도 있습니다) –
특정 유형의 모든 FieldInfo 및 PropertyInfo를 가져 와서 사전에 저장하기 때문입니다. 나는 – Steffen