Possible Duplicate:
When must we use extern alias keyword in C#?정적으로 C#으로 AssemblyQualifiedName에 의해 컴파일시 타입을 선언하는 방법
내가 솔루션의 다른 프로젝트에서 공유 파일로 주로 구성되어 어셈블리가 있습니다. 즉, 전체 솔루션은 약 10MB이지만,이 기능의 작은 하위 집합을 별도의 200KB 어셈블리로 내 보냅니다. 솔루션의 모든 프로젝트는 UI를 제외한 NUnit 테스트 프로젝트에 있습니다.
문제는 내가 공유 파일 중 하나에 대한 테스트를 추가 갔다이고, 나는 다음과 같은 오류 있어요 :
The type 'xxx' exists in both 'c:\path\to\project\Logic.dll'
and 'c:\path\to\project\Exported.dll'.
난 반사를 사용하고 어셈블리 자격을 갖춘 이름을 제공하거나, 내가 할 수 알을 내 보낸 어셈블리 테스트를 별도의 프로젝트로 제거 할 수 있지만 둘 다 고통 스러울 수 있습니다. 컴파일시 Logic.dll에서 xxx 버전을 사용하도록 지정하기 만하면됩니다. 이 컴파일시에 사용할 수있는 유형의 버전을 지정할 수 있습니다, 그래서 다음과 같습니다
xxx blah = new xxx();
blah.DoSomething(123);
대신 :
Type t = Type.GetType("Logic.xxx, Logic");
object blah = Activator.CreateInstance(t);
t.GetMethod("DoSomething").Invoke(blah, new object[] { 123 });
'xxx'를 다른 네임 스페이스에 넣을 수는 없습니까? 그런 다음 namespace.xxx에 액세스합니다. blah = new namespace.xxx(); – Mark
extern alias가 검색 할 수 있도록 존재하는지조차 알아야하기 때문에 중복되는 것은 아닙니다. 그러나 나는 그 대답을 실제 답변으로 게시한다면 그 대답으로 받아 들일 것입니다. –