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

本文关键字:dll 命名空间 是否 | 更新日期: 2023-09-27 18:20:04

我在PocketPc工作,它有一个库(System.data)和(System.data.sqlclient)那么它们不是完整的库,那么我需要使用System.data(完整的库),但现在我有2个dll的调用(System.data)并且整个库也有System.data.sqlclient,那么我对它们有问题,所以如果我只使用完整库,我有另一个问题,因为System.data(无完整库)有一个System.data(完整库)没有的东西,所以我需要使用两个dll(具有相同的命名空间),我有问题。。。

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

请参阅MSDN中的外部别名和在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);

是,请参阅

MSDN 上的外部别名(C#参考)

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