문제

리플렉션을 사용하여 사용자 DLL을 조사하고 그 안에 클래스 개체를 만들어야 합니다.

그것을 수행하는 간단한 방법은 무엇입니까?

도움이 되었습니까?

해결책

다른 팁

System.Reflection.Assembly 당신이 사용하고 싶은 수업입니다.여기에는 사용자 DLL에 포함된 유형을 반복하는 다양한 방법이 포함되어 있습니다.각 클래스를 반복하여 특정 인터페이스 등에서 상속하는지 확인할 수 있습니다.

http://msdn.microsoft.com/en-us/library/system.reflection.assemblies_members.aspx

조사하다 Assembly.GetTypes() 유형 목록을 가져오는 방법 또는 Assembly.GetExportedTypes() 공공의 사람들에게만.

Activator.CreateInstance를 사용하여 Type 개체에서 클래스의 인스턴스를 생성하고 Assembly.GetTypes를 사용할 수 있는 dll의 모든 유형을 가져올 수 있습니다.

다음 링크를 살펴보세요.

http://www.java2s.com/Code/CSharp/Development-Class/Createanobjectusingreflection.htm

http://msdn.microsoft.com/en-us/library/k3a58006.aspx

기본적으로 리플렉션을 사용하여 어셈블리를 로드한 다음 관심 있는 형식을 찾습니다.유형이 있으면 해당 유형의 생성자 또는 기타 메소드/속성을 찾도록 요청할 수 있습니다.생성자가 있으면 이를 호출할 수 있습니다.쉬운!

이미 말했듯이 System.Reflection 네임스페이스를 찌를 필요가 있습니다.

로드하려는 DLL의 위치/이름을 미리 알고 있는 경우 Assembly.GetTypes()를 반복해야 합니다.

의사코드에서는 다음과 같이 보일 것입니다:

객체를 생성하고 조립합니다.

어셈블리에 포함된 모든 유형을 반복합니다.

찾고 있는 항목을 찾으면 이를 호출합니다(CreateInstance)…

현명하게 사용하십시오.

;)

둘러보고 싶다면 Reflection 코드가 많이 있지만 작업은 정말 간단하고 샘플이 포함된 기사가 최소한 12개 이상 있습니다.(일명 구글).그럼에도 불구하고 MSDN은 Reflection Reference에 대한 친구입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top