我有两个具有相同名称空间的DLL文件,但是它们具有不同的方法和类型。如何在项目中引用两个DLL并使用它们的方法和类型?
顺便说一下,这两个DLL具有名称相同但实现不同的某些方法和类型,以及某些唯一的方法和类型。
您不需要做任何特别的事情- 只需引用它们并使用类型即可。命名空间可以跨多个程序集毫无问题地出现,因为它们并不是真正的不透明类型。命名空间只是向其包含的所有类型添加通用前缀的一种方法,允许您在不同的命名空间下使用多个具有相同名称的类型。(该框架不会将它们视为具有相同的名称,因为它会看到所有内容的“完全限定”名称- 该名称的前面带有一个别名和一个名称空间。)
在极少数情况下,您引用2个具有相同类型名称 和 相同名称空间的程序集(例如,同一dll的2个不同版本)-您可以使用别名来区分给定类型使用哪个程序集。所有引用的默认别名为global,但是您可以在引用任何程序集时使用别名(使用编译器开关- 或仅使用Visual Studio中的属性框)为自己的程序集指定别名,并extern alias <name>在代码文件顶部添加一个子句在哪里使用它- 您将使用以下命令从不同的程序集中访问类型<name>::MyNamespace.Type
global
extern alias <name>
<name>::MyNamespace.Type