2009-07-22 5 views
5

인스턴스 나 인스턴스 검사와 같이 객체 또는 클래스 생성과 같은 복잡한 리플렉션을 사용하기가 더 편한 라이브러리 (예 : 오픈 소스 프로젝트 등)가 있습니까?쉬운 동적 리플렉션을위한 C# 라이브러리

감사

+0

System.Reflection 네임 스페이스의 형식 이외의 다른 의미입니까? –

+0

예, 대부분의 하드 리플렉션 작업을 쉽게 수행 할 수있는 랩퍼와 비슷합니다. – pistacchio

+0

이러한 '어려운 리플렉션 작업'중 일부를 설명해 주시겠습니까? – Trap

답변

4

시도 ... 반사보다 많은 다른 흥미로운 물건을 할 수있는 이는 LinFu 라이브러리를 사용할 수 있습니다 그것은

0

는 MS 단위 테스트 어셈블리는이 개인 예/유형에 액세스 할 수 있도록 PrivateObject 및 PrivateType 회원 꽤 똑바로.

+0

비록이 외부 테스트를 사용하는 것은 무서운, 끔찍한 생각입니다 ... –

+0

이것은 리플렉션을 통해 할 수있는 것에 대한 단순한 래퍼이므로 실제로 특별한 것은 없지만 인스턴스에서 비공개 항목을 혼동해서는 안됩니다./types. –

2

내 의견으로는 반사가 지금보다 더 쉽게 사용할 수 있다고 생각하지 않습니다. 거의 모든 핵심 기능이 Type 클래스 내에 포함됩니다. 작동 원리에 대해 배우려면 시간을 들여야하며 그 위에 또 다른 불필요한 레이어가 필요하지 않습니다.

특히, 다음과 같이 초기화되지 객체를 생성으로 '복잡한 일을'수행 할 수 있습니다

// Instantiates an uninitialized object of the specified type. 
var newObject = (MyObject)FormatterServices.GetUninitializedObject(elementType); 
+0

글쎄, 리플렉션에 의해 얻어진 정보 중 일부 캐싱이 좋을 것입니다. 리플렉션은 꽤 느리고 동일한 'MethodInfo' 또는'FieldInfo's를 반복적으로 검색하는 것이 리소스 돼지입니다. (나는 당신의 대답이 꽤 오래되었다는 것을 알고 있습니다 ...) –

1

반사는 정의가 어렵습니다. 이것은 전체 객체 구조 위에 놓인 간접적 인 수준입니다. 나는 그 힘을 제한하지 않고 어떻게 더 쉽게 만들 수 있을지 잘 모르겠습니다.

1

리플렉션이 어려울 경우 .Net의 기본 사항을 완전히 이해하지 못했을 수 있습니다. this과 같은 자습서를 사용해보십시오.