C#学习教程:手动将ClientBase集合类型从Array更改为List代理返回一个列表集合类型。由于nhibernate管理的实体,我不能使用List,所以我必须使用IList代理不是用svcutil生成的...我自己写的。我怎样才能做到这一点?不幸的是,当契约中声明的类型是像IList这样的接口类型时,无法控制WCF实际实例化的类型(实际上,它将是一个数组)。请参阅http://msdn.microsoft.com/en-us/library/aa347850.aspx:“在反序列化过程中,当声明的类型是接口时,序列化引擎选择实现声明接口的类型,以及已知的实例类型机制(在数据契约已知类型中描述)在这里无效;选择类型内置于WCF中。”您应该能够手动修复代理中从“Array”到“List”的所有引用-基本上只是一个乏味的查找和替换。但是,如果出于某种原因,这不起作用,您可以围绕将数组转换为列表的代理类编写一个包装器。Anyway,可能更简单:以上是C#学习教程:手动将ClientBase集合类型从Array改为List,分享所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——privateobject[]myPropertypublicListMyProperty{get{returnp.ToList();}set{//必要时初始化p=value.ToArray();}}本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
