从项目添加指向Web引用的链接 - 找不到ChannelBase

时间:2010-09-28 22:44:39

标签: silverlight wcf web-services

我正在构建一个Silverlight应用程序。由于我有Silverlight和.NET模块使用的类,我创建了一个包含其中所有类的Silverlight项目,然后是一个.NET项目(“添加链接”)链接到Silverlight项目中的类。这样,我有一个分别编译为Silverlight和.NET程序集的类文件。我想为Web服务引用复制相同的内容。意思是,我在Silverlight项目中有Web引用。我正在尝试将来自Silverlight项目的reference.cs的“添加链接”添加到.NET项目中。当我编译.NET项目时,由于Silverlight和.NET框架库中类的定义不一致,ChannelBase类似乎没有得到解决。这导致编译错误,指出未解析的ChannelBase。对我来说听起来像死路一条。你看到解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:1)

我担心这是不可能的。两个代理完全不同:其中一个是同步的,而另一个则不是。

您可以做的最好的事情是共享服务定义的类,而不是整个代理。只需预先创建这些类,使用“添加为链接”在两个项目中重用它们,然后在添加服务引用时,标记选项“重用引用的程序集中的类型”。

答案 1 :(得分:1)

以防其他人偶然发现这件事。我遇到了类似的问题。我正在使用slsvcutil.exe生成代理并尝试将其编译为.net和monotouch。我一直在ChannelBase not found。这完全没有意义。最后,我注释掉了代理客户端类中的CookieContainer属性,并且看到编译错误消失了,代理也适用于monotouch。