2011-09-22 4 views
1

제 3자를 설치 한 후 Visual Studio 2008에 winform 컨트롤 라이브러리가 있습니다. 어떻게 이러한 컨트롤을 내 자신의 사용자 지정 라이브러리로 가져올 수 있습니까? 예를 대신 사용 ThirdPartyAssembly.ControlName 위해 나는C에서 자신의 어셈블리에 세 번째 partiy 컨트롤 가져 오기 #

사람이 나에게 예를 적어주세요 수 (모든 컨트롤은 여전히 ​​원본과 동일한 모든 기능을 가지고) MyAssembly.CotrolName를 사용할 수 있습니까?

+0

내가 이렇게하고 싶어하는 이유는 제 두번째 버전의 써드 파티 컨트롤이있어서 같은 어셈블리 이름을 가진 프로젝트 참조에 추가 할 수 없다는 것입니다. 그런 다음 그 중 하나를 자체적으로 다시 패키징하고 싶습니다. 어셈블리를 사용하여 두 어셈블리 내부의 모든 컨트롤을 사용할 수 있습니다. – sovantha

+0

사이드 노트 : 누군가가 elses 라이브러리를 자신의 것으로 재 패키징하는 것은 라이센스 위반입니다. 그렇게하기 전에 라이센스/연락처 작성자를 읽으십시오. –

답변

1

타사 컨트롤을 자신의 라이브러리로 가져올 수 없습니다. 당신은 그들을 참조 할 수 있습니다. 원하는 경우 다른 이름으로 코드에서 이러한 컨트롤을 참조 할 namespace alias 기능을 사용할 수 있습니다 : 같은 타사 DLL의 두 가지 버전을 처리하는 경우

using MyNamespace = ThirdPartyNamespace; 
... 

var control = new MyNamespace.ControlName(); 

당신은 extern alias를 사용할 수 있습니다. this 또는 this을 읽으십시오 :

extern alias ThirdPartyAssemblyV1; 
extern alias ThirdPartyAssemblyV2; 
... 
var v1 = new ThirdPartyAssemblyV1::Namespace.ControlName(); 
var v2 = new ThirdPartyAssemblyV2::Namespace.ControlName(); 
+0

답장을 보내 주셔서 감사합니다. 내가 이것을 시도하자. – sovantha

0

그것은 불가능한 것처럼 보입니다. 당신은 그것을 참조 할 수 있습니다. 그러나 또 다른 방법은 어셈블리의 리소스, 디스크로 추출한 후 메서드를 호출하는 리플렉션으로 두 개의 차이 라이브러리를 패키징하는 것입니다.

+0

제공 할 수있는 스 니펫이 있습니까? – sovantha

관련 문제