wcf双工通信问题!!!!!!!!!!!!!!!!!!!!!!!!!!!! 120

wcf服务器端:binding="netTcpBinding"[ServiceContract(CallbackContract=typeof(ICallBack))]p... wcf服务器端:binding="netTcpBinding"
[ServiceContract(CallbackContract = typeof(ICallBack))]
public interface ISinterface
{
[OperationContract(IsOneWay = true)]
void Init();

[OperationContract]

String DoWork(string flg, string[] message, int n);

wcf客户端:

ServiceReference1.NMSinterfaceClient proxy = new ServiceReference1.NMSinterfaceClient(instanceContext, "NetTcpBinding_ISinterface");

加入CallbackContract之后服务引用问什么都必须带参数了?

因为我用到的函数比较多,有很多不需要服务器端回调,像DoWork()就不需要,要怎么设置在在客户端的引用不要带参数?
ServiceReference1.NMSinterfaceClient proxy = new ServiceReference1.NMSinterfaceClient();
这样就够了。

因为程序代码很多,只贴了要说的,可能表述上不是很清楚,如果有懂的没看明白我说的什么可以hi我,解答好了一定追加分。。。
展开
 我来答
zhentamadebt
2010-09-06 · 超过22用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
你都会写代码了,这个基础知识不应该不懂啊。要么就是我对你的问题理解错了?
所谓双工通讯,其实就是双向调用。
那如何进行双向调用呢,WCF给出了一个解决方案:客户端也起一个服务监听!
呵呵,当然这个只是打个比方,实际处理没有那么重量级。
但是,所谓“CallbackContract”,的确是一个动态的客户端的“服务”契约,用这个契约,服务就可以主动访问客户应用了,这个和标准的回调函数很相似吧,估计名字也就是这么来的:)
以上是基础知识解释。好了,下边正式回答你的问题:
首先,如果服务端不需要“回调”,那就不要在声明里使用CallbackContract,那么客户端自然也不需要在new的时候写入需要执行的具体回调处理方法名了。
第二,如果只是部分不需要,那么,最好把服务契约做一个明确划分,确定客户端访问时是否需要提供回调契约。
第三,即使声明了回调契约,客户端也实现了,DoWork内部也可以不调用契约接口啊,对系统性能没有任何影响。
如果没说清楚,你再问:)
RayNCC
2010-09-06 · TA获得超过615个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:601万
展开全部
楼主的场景,分拆为两个Contract比较合理。
因为明显两个的职责是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式