如何创建WCF框架
这篇文章主要讲解了“如何创建WCF框架”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何创建WCF框架”吧!
WCF框架作为一个高效的.NET程序框架。其混合了函数语言和物件导向程序编制语言,并且***的适用于编程、算法、技术和探索性开发,因此可以在使用的过程当中感受到趣味性和吸引力。
WCF框架自定义集合类型,如果作为服务契约的一部分进行发布,必须要保证以下几点:WCF框架包含的类型必须使用[Serializable]和[DataContract]标记;WCF集合包含的类型属性必须使用[DataMember]标记,并且,如果是属性(Property),必须要实现get和set;WCF集合类型必须使用[Serializable]和[CollectionDataContract]标记,以及[KnownType]标记指向集合包含的子类型;集合类型必须实现IEnumerable<T>接口;集合类型使用[DataMember]标记的IList将集合项向客户端公开。
缺省情况下,WCF框架对集合类型是内建支持的,也就说你不需要应用任何属性,就可以将集合应用在数据契约(协定)中,但前提是集合中的元素必须是应用了DataContractAttribute属性或者是可序列化的类型。这时,数据契约(协定)名称和命名空间就依赖集合中包含的元素的类型的名称和命名空间了,它们不受集合类型本身的名称和命名空间的影响。
如果集合是应用于某个数据契约类型中时,那么它的名称将是字段名称,如下面Customer的定义以及序列化后的表示:
[DataContract] public class Customer { [DataMember] public List<string> addresses = new List<string> {"Beijing","ShangHai" }; [DataMember] public Dictionary<int, object> telephones = new Dictionary<int, object> { { 1, "010-82371234" }, { 2, "021-56781234" } }; } <Customer xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/WCFTestSerializer"> <addresses xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:string>Beijing</d2p1:string> <d2p1:string>ShangHai</d2p1:string> </addresses> <telephones xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfintanyType> <d2p1:Key>1</d2p1:Key> <d2p1:Value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">010-82371234</d2p1:Value> </d2p1:KeyValueOfintanyType> <d2p1:KeyValueOfintanyType> <d2p1:Key>2</d2p1:Key> <d2p1:Value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">021-56781234</d2p1:Value> </d2p1:KeyValueOfintanyType> </telephones> </Customer>
感谢各位的阅读,以上就是“如何创建WCF框架”的内容了,经过本文的学习后,相信大家对如何创建WCF框架这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341