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 序列化)