WCF - ServiceContract Operation 重载
发布日期:2021-06-29 03:54:08
浏览次数:2
分类:技术文章
本文共 1338 字,大约阅读时间需要 4 分钟。
方法重载在 OOP 中很常见,但在 WCF 中可能会有些麻烦。看下面的例子。
[ServiceContract] public interface IContract { void Test(int i); void Test(string s); } public class MyService : IContract { public void Test(int i) { Console.WriteLine(i); } public void Test(string s) { Console.WriteLine(s); } } public class WcfTest { public static void Test() { AppDomain.CreateDomain("Server1").DoCallBack(delegate { ServiceHost host = new ServiceHost(typeof(MyService), new Uri("http://localhost:8080/MyService")); host.AddServiceEndpoint(typeof(IContract), new BasicHttpBinding(), ""); host.Open(); }); IContract channel = ChannelFactory<IContract>.CreateChannel(new BasicHttpBinding(), new EndpointAddress("http://localhost:8080/MyService")); using (channel as IDisposable) { channel.Test(1); } } }
在 Host 载入时发生异常,信息如下: 未处理 System.InvalidOperationException Message="ContractDescription 'IContract' has zero operations; a contract must have at least one operation." Source="System.ServiceModel" StackTrace: 在 System.ServiceModel.Description.ContractDescription.EnsureInvariants()
虽然这个异常信息有点莫名其妙,但其实问题时出在方法重载上了。SOAP Message Action 并不能区分这两个方法,因此也无法确定调用目标。解决方案很简单,使用 OperationContract.Name。 [ServiceContract] public interface IContract { [OperationContract(Name="Test1")] void Test(int i); [OperationContract(Name="Test2")] void Test(string s); }
这样一来,生成的客户端代理和消息中自然不会出现两个 Test 了。 转载地址:https://blog.csdn.net/zengjibing/article/details/3812188 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月22日 18时05分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
接力10G,25G将成为数据中心首选解决方案
2019-04-29
如何落实提升企业研发效能?阿里巴巴实践案例解读 ...
2019-04-29
Linux基础命令---lpr
2019-04-29
纠结了五年,华为要动智能电视了?
2019-04-29
亚马逊取消纽约第二总部的内幕
2019-04-29
好程序员web前端分享HTML5 video事件应用示例
2019-04-29
chrome浏览器三步搞定完整网页截图
2019-04-29
张德芬空间获千万级A轮融资,投资方为喜马拉雅 ...
2019-04-29
开发直播app软件除了技术还缺少一个“高效辅助” ...
2019-04-29
自动驾驶公司最新排名:Waymo、通用、福特领先,苹果、特斯拉垫底 ...
2019-04-29
Spring Cloud Alibaba基础教程:Nacos的数据持久化
2019-04-29
专注中高端休闲住宿,盒子空间获近2000万元A轮融资 ...
2019-04-29
数据服务商“方一信息”完成融资,华闻传媒投资 ...
2019-04-29
Mysql主从关系搭建
2019-04-29
人群优选算法模型,如何挖掘品牌潜客?
2019-04-29
Python局部变量
2019-04-29
Resource Manager
2019-04-29
Euler 今日问世!国内首个工业级的图深度学习开源框架,阿里妈妈造 ...
2019-04-29
致敬改变者,2019江北新区首届产业创新加速论坛在江北举行 ...
2019-04-29