首页 > 代码库 > WCF+NHibernate 序列化

WCF+NHibernate 序列化

最近使用WCF+NHibernate 时候 发生序列化问题 困扰了好久  

客户端有的方法会报  “服务终结点未使用HTTP 绑定造成。。。。”  这个错误

发生的原因大体上是因为:数据内容过大或者是WCF返回值无法序列化造成的

数据量过大:在客户端和服务端配置文件 添加上

<dataContractSerializer maxItemsInObjectGraph="65536000" />


无法序列化这点困扰了我好久,大体感觉是因为数据契约的导致的,通过 Trace Viewer 找到了,发生这些错误的都是因为我有级联属性的字段。

使用 knowntype 每一个类标记太麻烦了  写了一个简单类

WCF:

[DataContract(IsReference = true)][KnownType("GetKnownType")]class Entity{      private static Type[] GetKnownType()        {            //将自定义对象的程序集下的所有类型标记为KnownType。              return Assembly.Load("WCF.Entity").GetTypes();        }  }

 

NHibernate:
多对一端  lazy = fasle

一对多端  <bag>

实体类:[DataContract(IsReference = true)]

[DataContract(IsReference = true)]

 

WCF+NHibernate 序列化