WCF作为一个重要的开发插件,其中有很多比较重要的功能与应用技巧,值得我们去深入的探讨。那么,我们今天将会为大家详细介绍一下有关WCF自定义集合类型的一些应用注意事项,以帮助大家的实际开发。#t#
在WCF自定义集合类型中,如果作为服务契约的一部分进行发布,必须要保证以下几点:
1.集合包含的类型必须使用[Serializable]和[DataContract]标记;
2.集合包含的类型属性必须使用 [DataMember]标记,并且,如果是属性(Property),必须要实现get和set;
3.集合类型必须使用[Serializable]和[CollectionDataContract]标记,以及[KnownType]标记指向集合包含的子类型;
4.集合类型必须实现IEnumerable< T>接口;
5.集合类型使用[DataMember]标记的IList将集合项向客户端公开.
样例如下:
- namespace Sharpnessdotnet
- {
- [Serializable]
- [DataContract]
- public class Sharpnessdotnet
- {
- private string name;
- [DataMember]
- public string Name
- {
- get
- {
- return name;
- }
- set
- {
- name = value;
- }
- }
- }
- [Serializable]
- [CollectionDataContract]
- [KnownType(typeof(Sharpnessdotnet))]
- public class SharpnessdotentCollection : IEnumerable<Sharpnessdotnet>
- {
- [DataMember]
- public IList<Sharpnessdotnet> List;
- public SharpnessdotentCollection()
- {
- List = new List<Sharpnessdotnet>();
- }
- public void Add(Sharpnessdotnet obj)
- {
- List.Add(obj);
- }
- public IEnumerator<Sharpnessdotnet> GetEnumerator()
- {
- return List.GetEnumerator();
- }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return List.GetEnumerator();
- }
- }
- }
WCF自定义集合类型的基本知识就为大家介绍到这里。