2012-01-12 95 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上

但是他們仍然會是不同的類型,你將不能夠通過一個創建的對象傳遞給其他方法。

相關問題