是否可以更改dll的命名空间?

时间:2012-01-12 16:54:37

标签: c# dll

我正在为PocketPc工作,它有一个库(System.data)和 (System.data.sqlclient)那么他们不是完整的库然后我需要使用 System.data(完整的图书馆)但现在我有2个dll的电话(System.data) 并且完整的库也有System.data.sqlclient,那么我对它们有问题,所以 如果我只使用完整的库我有另一个问题,因为System.data(没有完整的库)有一件事System.data(完整的库)没有,所以我需要使用2个dll(带有相同的命名空间)我有问题...

2 个答案:

答案 0 :(得分:3)

请参阅MSDN中的extern aliasa tutorial以在visual studio中使用它们。

从命令行编译器中,引用声明为:

/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);

答案 1 :(得分:0)

是的,请参阅

MSDN上的

extern alias (C# Reference)

但它们仍然是不同的类型,你将无法将一个创建的对象传递给另一个方法。