【发布时间】:2009-12-31 21:23:46
【问题描述】:
我有一个 silverlight 库,我添加了一个 wcf 服务参考。调用这个库 A.dll。这个库包含其他函数,我更喜欢将 wcf 代码放在另一个库中。
我现在创建了另一个 silverlight 类库,我添加了相同的 wcf 服务引用(称为此库 B.dll)并希望第一个 silverlight 库引用 wcf 服务。
如果我在 B.dll 中引用 A.dll,我不会得到循环引用。
我仍然在 A.dll 中有 wcf 参考代码,但与 B.dll 中的 wcf 参考代码有不同的命名空间(不确定这是否与问题有关)。
知道为什么我在 A.dll 中引用 B.dll 时会出现此错误吗?
法学博士
附言。我知道我可以创建一个界面库来提供另一种设计,但目前我不确定为什么会发生此错误。
【问题讨论】:
-
当您尝试将项目 B 引用添加到项目 A 时,您是否收到此错误作为弹出对话框?我有点不清楚你到底想做什么。我的理解是,您有 2 个 silverlight 类库,每个类库都有对同一个 WCF 服务的服务引用。然后,您希望一个项目引用另一个项目。只要他们都没有试图相互引用,我在这里看不到循环引用。
-
@Dan:一周前,我在第一个库中添加了 wcf 服务参考代码。今天决定把wcf服务代码放到另一个库中,然后从第一个库中引用。我刚刚从第一个库中删除了 wcf 代码,但仍然出现循环引用错误。是的,错误是添加引用时显示的对话框。
-
感谢您的澄清...我只是想建立一组新的项目来尝试重现您的问题。我不确定它是否有任何影响,但您是通过添加服务引用...还是通过运行 slsvcutil.exe 并将生成的代码添加到项目中来生成 WCF 服务代理?
-
@Dan:感谢您的尝试。我现在所做的是在记事本中编辑 A.dll 的 csproj 并将 B.dll 添加到 projectReferences 标记中。当我现在构建时,一切正常。但是,我在解决方案资源管理器中的引用项目 (B.dll) 旁边看到一个警告图标(三角形)。所以它看起来像 VS 在某种程度上行为不端。关于添加代理,我按照 Sahil Malik 的优秀文章 (blah.winsmarts.com/…) 获得了没有所有配置包袱的代理。
-
@Dan :看起来是 VS 搞得一团糟。我不得不手动修复 vs 解决方案和项目文件,现在一切都已清除。不知道它是如何进入这种状态的。我创建了几个解决方案项目并将这些项目拖到其中。不知道这是否混淆了ide。无论如何,感谢所有的帮助。
标签: .net wcf silverlight