WCF自定義集合類型作為服務契約注意事項
當我們在使用WCF自定義集合類型當做服務契約發布的時候,需要注意很多問題。在這篇文章中就總結了一些注意事項,希望對大家有些幫助。#t#
1.WCF自定義集合類型必須使用[Serializable]和[DataContract]標記;
2.集合包含的類型屬性必須使用 [DataMember]標記,并且,如果是屬性(Property),必須要實現get和set;
3.集合類型必須使用[Serializable]和[CollectionDataContract]標記,以及[KnownType]標記指向集合包含的子類型;
4.集合類型必須實現IEnumerable<T>接口;
5.WCF自定義集合類型使用[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自定義集合類型相關概念總結。