Возможный дубликат:
когда должны ли мы использовать ключевое слово extern alias в C#?
У меня есть сборка, состоящая в основном из файлов, совместно используемых другими проектами в решении. Другими словами, все решение будет занимать около 10 МБ, но я экспортирую небольшое подмножество этой функциональности в отдельную сборку размером 200 КБ. Все проекты решения находятся в тестовом проекте NUnit, кроме пользовательского интерфейса.
Проблема в том, что я решил добавить тест для одного из общих файлов и получил следующую ошибку:
The type 'xxx' exists in both 'c:\path\to\project\Logic.dll'
and 'c:\path\to\project\Exported.dll'.
Я знаю, что могу использовать отражение и предоставить полное имя сборки, или я могу удалить экспортированные тесты сборки в отдельный проект, но и то, и другое было бы проблемой. Я просто хочу указать использовать версию xxx в Logic.dll во время компиляции. Можно ли указать, какую версию Type использовать во время компиляции, чтобы это выглядело так:
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 });