2009-12-31 66 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