현재 Java에서 C#으로 프레임 워크의 일부를 이식 중입니다.Java에서 C#으로 변환 리플렉션을 사용하여 서브 클래스의 공개 필드 찾기
필자는 Java에서 다음 행을 사용하여 추상 클래스의 서브 클래스 선언 순서로 선언 된 필드를 가져 왔습니다. 그런 다음이 필드 목록을 사용하여 리플렉션을 통해 값을 설정합니다.
Field[] fields = this.getClass().asSubclass(this.getClass()).getDeclaredFields();
나는 다음과 같은 방법으로 C#에서 동일한 결과를 얻으려고 시도했다. 그러나 이것은 슈퍼 클래스의 모든 공개 필드를 반환 할 것입니다.
IEnumerable<FieldInfo> fields = this.GetType().GetFields().OrderBy(field => field.MetadataToken);
Java 메소드와 동일한 결과를 얻을 수있는 방법이 있습니까?
자신을 반복하려면 현재 클래스의 하위 클래스 중 선언 된 필드 만 필요합니다.
어쩌면 내가 없었 한만큼 커피를 , "this.getClass(). asSubclass (this.getClass())"가 "this.getClass()"와 다른 점은 무엇입니까? –
하하, 아마도 그렇지 않습니다. 그것은 얼마 전에 나는 그것을 썼다. 아마도 그것이 하위 클래스 일 뿐이라는 것을 확인하려고했습니다. –