Разрешить конфликты с импортированными типами
У меня есть класс MyClass под пространством имен Phoenix в двух разных сборках ClassLibrary1 и ClassLibrary2. ClassLibrary2 является ссылкой в ClassLibrary1. Теперь в моем ClassLibrary1, где бы я ни использовал тип MyClass, он дает мне предупреждение о конфликтах с импортированными типами. Как я могу решить эту проблему, не подавляя предупреждение с помощью директивы pragma?
1 ответ
Дайте псевдоним (отличный от "глобального") по умолчанию для ClassLibrary2
ссылка в ClassLibrary1
проект, зайдя в свойствах по самой ссылке.
Это мгновенно избавит вас от предупреждения, если вы захотите использовать версию ClassLibrary1.
Теперь, когда вы хотите получить доступ к чему-либо из dll ClassLibrary2, вам нужно будет поместить это поверх кода вашего класса:
extern alias <yourAliasName>;
using MyClassOther = yourAliasName::Phoenix.MyClass;
Если вы хотите сохранить существующий код, который ссылается на другие классы из ClassLibrary1
работая, вы можете сохранить глобальный псевдоним и просто добавить другой псевдоним в ссылку. Таким образом, вам просто понадобится приведенный выше код для классов, которые на самом деле используют MyClass
, Тогда вам нужно будет полностью квалифицировать использование в (надеюсь) гораздо меньшем количестве случаев.