解决与导入类型的冲突

时间:2013-10-11 14:56:52

标签: c# .net assemblies

我在两个不同的程序集ClassLibrary1和ClassLibrary2中的名称空间Phoenix下有一个MyClass类。 ClassLibrary2是ClassLibrary1中的引用。 现在在我的ClassLibrary1中,只要我使用了MyClass类型,它就会向我发出与导入类型冲突的警告。 如何在不使用pragma指令抑制警告的情况下解决此问题?

1 个答案:

答案 0 :(得分:1)

通过转到引用本身的“属性”,为ClassLibrary2项目中的ClassLibrary1引用指定一个别名(默认的“全局”除外)。

如果你想使用ClassLibrary1版本,这将立即消除警告。

现在,只要您想从ClassLibrary2 dll访问某些内容,就需要将其置于类代码之上:

extern alias <yourAliasName>;
using MyClassOther = yourAliasName::Phoenix.MyClass;

如果要保留引用ClassLibrary1中其他类的现有代码,可以保留全局别名,只需在引用中添加另一个别名即可。这样,您只需要在实际使用MyClass的类上使用上述代码。然后,您需要完全限定使用(希望)更少的情况。