WCF 数据结构中返回的只读属性 TotalCount 也需要声明 Set 方法。

[DataContract]
public class BookShelfDataModel
{
    public BookShelfDataModel()
    {
        BookList = new List<BookDataModel>();
    }
    [DataMember]
    public List<BookDataModel> BookList { get; set; }
    [DataMember]
    public int TotalCount { get { return BookList.Sum(t => t.Count); } set { } }
}

未声明 Set 方法将抛出异常如下:

System.Exception: {"ClassName":"System.ServiceModel.CommunicationException","Message":"An error occurred while receiving the HTTP response to http://localhost:6274/TestService.svc. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.","Data":{},"InnerException":{"ClassName":"System.Net.WebException","Message":"The underlying connection was closed: An unexpected error occurred on a receive.","Data":{},"InnerException":{"ClassName":"System.IO.IOException","Message":"Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.","Data":{},"InnerException":{"NativeErrorCode":10054,"ClassName":"System.Net.Sockets.SocketException","Message":"An existing connection was forcibly closed by the remote host","Data":{},"InnerException":null,"HelpURL":null,"StackTraceString":" at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)\r\n at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nReceive\nSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem.Net.Sockets.Socket\nInt32 Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags)","HResult":-2147467259,"Source":"System","WatsonBuckets":null},"HelpURL":null,"StackTraceString":" at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)\r\n at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)\r\n at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)","RemoteStackTraceString":null,"RemoteStackIndex":0,"ExceptionMethod":"8\nRead\nSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089\nSystem

转载于:https://www.cnblogs.com/jinzesudawei/p/7713103.html

[WCF] - 使用 [DataMember] 标记的数据契约需要声明 Set 方法相关推荐

  1. WCF学习(五)数据契约之已知类型

    准备技术: 1.C#基础知识 2.了解WCF基础知识 在正常的c#开发中我们是允许用子类去替换基类的,这也是所谓的替换原则.但是我们在WCF中确不能用数据契约的子类来替换父类的,因为这中间存在一个序列 ...

  2. 关于数据契约(DataContract)待续

    前两天做程序时建一个类来要实例化一些数据的处理时遇到的一个问题, 人懒了一下,就复制了以前的一部分代码,由于漏掉了DataContract的服务契约,程序执行时报错. 虽然找到错在哪,但对于DataC ...

  3. WCF契约的简单介绍(服务契约 数据契约 消息契约)

    本篇博文只是简单说下WCF中的契约的种类.作用以及一些简单的代码示例.在WCF中契约分为服务契约.数据契约和消息契约.下面对这几种契约进行简单的介绍. 服务契约 服务契约描述了暴露给外部的类型(接口或 ...

  4. WCF 之 数据契约

    前面几篇讲的都只能传递string类型的简单参数,数据契约就是用来解决如传递一个带有多个属性的Class类型的对象的. WCF推荐使用数据契约的方式实现数据的序列化.这部分的内容很好理解但是很重要,先 ...

  5. 重温WCF之数据契约和序列化(四)

    一.数据契约 1.使用数据协定可以灵活控制哪些成员应该被客户端识别. [DataContract]public class Employee{[DataMember]public string Nam ...

  6. WCF简单教程(4) 数据契约

    第四篇:用数据契约传递自定义数据对象 之前的演示中,我们一直都是在用string类型做参数和返回值,实际项目中肯定会传递自定义的数据类型.与WebService不同,WCF想传递自定义数据,必须要将其 ...

  7. WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)

    [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在.NET中,所有的集合都实现了IEnumerable接口,比如Arra ...

  8. WCF步步为营(五):数据契约

    . WCF只能传输序列化的类型,WCF 能自动序列化.net内置的之类型,但是如果需要传输自定义的类型,必须把自定义的类型标注DataContract DataContract标注这个类作为数据契约, ...

  9. WCF技术剖析之十四:泛型数据契约和集合数据契约(上篇)

    在.NET Framework 2.0中,泛型第一次被引入.我们可以定义泛型接口.泛型类型.泛型委托和泛型方法.序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念.而集合代表一组对象的组合,集 ...

最新文章

  1. oracle重建实例_记一次误删Oracle控制文件并恢复过程
  2. 听障人士的“有声桥梁”:百度智能云曦灵-AI手语平台发布
  3. openSUSE 新的源(镜像)
  4. 解决无法将类型为“System.Web.UI.WebControls.HiddenField”的对象强制转换为类型的错误...
  5. Windows server 2008 远程桌面建立
  6. Android模拟器无法上网问题
  7. 解决bug_赛博朋克2077BUG卡关怎么办?卡关BUG解决办法
  8. oracle登录时无效的参数,oracle – 使用bash变量时出现Sqlplus登录错误:SP2-0306:无效选项...
  9. 网络请求中的cookie与set-Cookie的交互模式和作用
  10. 量子纠缠(三)——波尔和爱因斯坦之争
  11. [转帖]web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。...
  12. The minimum required Cuda capability is 3.7.
  13. 前端开发【WEUI框架H5网页开发】—— WEUI+Node.js+fis3 项目开发
  14. ASP.NET Word转换成PDF文件
  15. windows无法格式化u盘_U 盘格式化提示 windows 无法完成格式化的解决办法
  16. 关于判断力-兼谈IT评论界冥顽不化的愚蠢
  17. Java没有友联(函数)这个概念怎么办?
  18. 听说你想用开发者工具调试我的网站?挺可以的啊。25
  19. php学习规划,2015年计划
  20. 今天遭到鄙视了。突然感觉自己昏昏沉沉的过日子 究竟不是个事 自己得努力了!~!

热门文章

  1. re.containerbase.startinternal 子容器启动失败_Python项目容器化实践(二) Docker Machine和Docker Swarm...
  2. 计算机二级高级应用考题,2016计算机二级MSOFFICE高级应用考试真题
  3. java二叉树代码_JAVA语言实现二叉树生成的代码教程
  4. 算法—振兴中华(C语言版)
  5. “精彩极了”和“糟糕透了”
  6. 力扣 数组中的第K个最大元素
  7. c++ socket学习(1.6)
  8. 《MySQL 8.0.22执行器源码分析(4.1)Item_sum类以及聚合》
  9. 06-对图像进行腐蚀操作
  10. uvm 形式验证_IC设计职位详解之“数字验证工程师”就业必学课程