2009-12-31 36 views
2

我有一個silverlight庫,我已經添加了一個wcf服務引用。稱此庫爲A.dll。這個庫包含其他功能,我更喜歡在另一個庫中有wcf代碼。WCF程序集導致循環依賴關係

我現在已經創建了另一個silverlight類庫,我添加了相同的wcf服務引用(稱爲此庫B.dll),並希望第一個silverlight庫引用wcf服務。

如果我在B.dll中引用A.dll,我不會收到循環引用。

我在A.dll中仍然有wcf參考代碼,但與B.dll中的wcf參考代碼有不同的命名空間(不確定這是否與問題有關)。

任何想法爲什麼我在A.dll中引用B.dll時會出現此錯誤? JDD。

JD。

Ps。我知道我可以創建一個接口庫來提供另一種設計,但目前我不知道爲什麼會出現這種錯誤。

+0

當您嘗試將項目B引用添加到項目A時,是否將此錯誤顯示爲彈出對話框?對於我來說,有點不清楚你正在努力做什麼。我的理解是,你有2個silverlight類庫,每個庫都有對同一個WCF服務的服務引用。然後你需要一個項目來引用另一個項目。只要他們沒有試圖引用對方,我就不會在這裏看到循環引用。 – 2009-12-31 21:39:39

+1

@Dan:一週前,我將wcf服務引用代碼添加到第一個庫。今天,我決定將wcf服務代碼放入另一個庫中,然後引用第一個庫中的庫。我剛剛從第一個庫中刪除了wcf代碼,但仍然收到循環引用錯誤。是的,錯誤是添加引用時顯示的對話框。 – 2009-12-31 21:49:09

+0

感謝澄清...我只是試圖建立一套新的項目,試圖重現你的問題。我不確定它是否有任何作用,但是您是通過執行Add Service Reference ...還是通過運行slsvcutil.exe並將生成的代碼添加到項目中來生成WCF服務代理? – 2009-12-31 21:59:36

回答

3

我在A.dll中仍然有wcf參考代碼,但與B.dll中的wcf參考代碼有不同的名稱空間(不確定是否與此問題有關)。

我認爲,即使名稱空間不同,因爲您已經確定您創建了一個循環程序集引用。

VS首先構建依賴(引用)程序集。如果你是一個循環引用,VS將不知道構建項目的順序,因此你得到的錯誤。

+0

+1。感謝提供構建順序的提示。我想添加一個對我的程序集的引用,VS抱怨循環引用,儘管代碼中沒有循環依賴。問題是我曾經反過來參考過這些項目,Visual Studio在Projekt Dependencies窗口中保留了依賴/引用。我希望這將有助於未來的人。 – citronas 2011-08-18 11:21:55