2014-02-18 82 views
2

我有一個項目B它引用一個項目在同一個解決方案的一類。項目A有一個使用system.DirectoryServices ASP.NET的類1。我在Project A中添加了對System.DirectoryServices的引用。 現在在我的項目B中,我有一個page1.aspx,它嘗試在項目A中調用class1。我在這裏得到一個錯誤。 Page1.aspx.vb只會嘗試訪問Class1的屬性,但不會嘗試直接訪問DirectoryServices。 爲什麼要在Project B中添加對System.DirectoryServices的引用?項目B引用項目A,其具有使用ASP.NET的System.DirectoryServices

間接引用被組裝「的System.DirectoryServices」,其包含「System.DirectoryServices.DirectoryEntry」製成。將'C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.DirectoryServices.dll'文件引用添加到您的項目。

幫助表示讚賞。

回答

1

如果您有一個公共方法返回或接受System.DirectoryServices中定義的任何類型,並且您直接或間接從項目B使用該方法,則必須在Project B中添加對System.DirectoryServices的引用。否則它不應該打擾你。

如果你不想在所有添加到項目B的System.DirectoryServices參考,再考慮面向接口編程!抽象出使用接口的特性和工作,而不是引用具體的類型。

+0

在項目A Class 1中使用的System.DirectoryServices方法來填充它的領域,而這些領域的Class1通過在B項目的一個頁面中使用。根據我,只把我需要添加引用的System.DirectoryServices應該在項目A,不在項目B中,因爲它不直接訪問它,它只是在另一個使用它的項目中訪問一個類。 – user3325236

+0

如果Class1中的公共字段暴露了System.DirectoryServices中定義的任何類型,那麼您還必須在其他項目中添加對其的引用。 –

+0

我只是忽略了今天的一整天,一個填充這些公共字段的方法也返回了DirectoryEntry。將其更改爲一個字符串,我不必在項目B中添加引用,因爲它應該是。感謝Kaz-LA。 – user3325236

相關問題