我使用 Add As Link 选项在多个程序集中包含相同源文件的实例。我特别需要在这些程序集中包含相同源的实例,因为它负责必须在程序集内部进行的许可证验证。跨模块边界执行许可证调用可能会带来安全风险。
我的解决方案中包含代码的一些项目依赖于也包含它的其他模块,从而导致警告CS0436:
“[licence.cs 完整路径] 中的类型 [type] 与 [依赖项目也包括 licence.cs] 中的导入类型 [LicenceClass] 冲突。使用 [licence.cs 完整路径] 中定义的类型”。
我曾尝试声明一个类别名,但 licence.cs 内部的定义会导致相同的警告。在别名中,必须有对导致相同警告的重复类名的引用。
我知道在程序集之间复制源代码是不好的做法,但在这种情况下是故意的。我宁愿保留每个程序集链接到的中央实例,而不是具有重命名类的专用实例以避免警告。
我的解决方法是简单地使用#pragma
. 有没有更优雅的解决方案?