2012-01-12 51 views
-3

以及我工作的掌上电脑,它有一个库(System.data)和 (System.data.sqlclient),那么他们是不完整的库,然后我需要使用 System.data(完整库),但现在我有2次DLL的调用(System.data) 和完整的图书馆有System.data.sqlclient过,然后我与他们的问题,所以如果 我只使用了完整的图书馆,我有一个问题,的Cuz System.data(未完全库)有一件事至极System.data(完整的图书馆)没有,所以我需要使用2个DLL(具有相同的命名空间),我有问题...它是否有可能改变一个dll的命名空间?

+2

请清理您的文章更好的语法,这是很难理解你的问题,它可能被关闭。如果它确实关闭,你仍然可以编辑你的问题,它可以重新打开。 – 2012-01-12 16:56:18

+0

就是“不完整”的'System.Data'的“完整”'System.Data'的一个子集?如果你只是使用“完整”的会发生什么?这听起来像你正在运行到完整的.NET Framework和客户端配置文件.NET框架之间的问题。有些东西正在使用客户端配置文件,但其他的东西需要充分。如果是这样的话,安装完整的框架应该可以正常工作。你绝对不想在两者之间选择DLL。 – David 2012-01-12 16:58:25

+0

.dll文件的名称并不重要,你可以在同一个.dll文件有不同的命名空间 – 2012-01-12 16:58:41

回答

3

请参阅extern alias在MSDN和a tutorial在视觉工作室中使用它们。

在命令行编译器中的引用声明:

/r:SystDataOfficial=System.Data.dll 
/r:SystDataOther=data.dll 

然后在你的代码:

extern alias SystDataOfficial; 
extern alias SystDataOther; 

var c = new SystDataOfficial::System.Data.SqlClient(); 

你也可以只放了的DLL作为别名之一,并使用其他一个通常是

请注意,类型不能一起使用。此代码将无法正常工作:

// Expect SystDataOfficial::SomeConstant 
SystDataOfficial::System.Data.SqlClient.SomeMethod(SystDataOther::SomeConstant); 
0

是的,看到

extern alias (C# Reference) MSDN上

但是他们仍然会是不同的类型,你将不能够通过一个创建的对象传递给其他方法。

相关问题