Разрешить конфликты с импортированными типами

У меня есть класс 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, Тогда вам нужно будет полностью квалифицировать использование в (надеюсь) гораздо меньшем количестве случаев.

Другие вопросы по тегам