Я включаю экземпляр одного и того же исходного файла в нескольких сборках, используя параметр "Добавить ссылку". Мне нужно включить экземпляр того же источника в эти сборки, потому что он отвечает за проверку лицензии, которая должна произойти внутри сборки. Выполнение вызовов лицензий через границы модулей может привести к риску.
Некоторые из проектов в моем решении, которые включают код, зависят от других модулей, которые также включают его, что приводит к предупреждению CS0436:
"Тип [type] в [полном пути licence.cs] конфликтует с импортированным введите [LicenceClass] в [проект зависимостей, в том числе licence.cs]. Использование типа, определенного в [licence.cs full path]".
Я попытался объявить псевдоним класса, но определения, внутренние для licence.cs, вызывают одно и то же предупреждение. В псевдониме должна быть ссылка на дублированное имя класса, которое вызывает одно и то же предупреждение.
Я знаю, что плохая практика дублирует источник между сборками, но в этом случае он преднамерен. Я предпочел бы сохранить центральный экземпляр, который каждая сборка связывается, а не специальный экземпляр с переименованными классами, чтобы избежать предупреждений.
Обходной путь, который у меня есть, - это просто игнорировать предупреждение с помощью #pragma
. Есть ли более элегантное решение?