WCF自定義集合類型作為服務(wù)契約注意事項(xiàng)
當(dāng)我們?cè)谑褂?a >WCF自定義集合類型當(dāng)做服務(wù)契約發(fā)布的時(shí)候,需要注意很多問題。在這篇文章中就總結(jié)了一些注意事項(xiàng),希望對(duì)大家有些幫助。#t#
1.WCF自定義集合類型必須使用[Serializable]和[DataContract]標(biāo)記;
2.集合包含的類型屬性必須使用 [DataMember]標(biāo)記,并且,如果是屬性(Property),必須要實(shí)現(xiàn)get和set;
3.集合類型必須使用[Serializable]和[CollectionDataContract]標(biāo)記,以及[KnownType]標(biāo)記指向集合包含的子類型;
4.集合類型必須實(shí)現(xiàn)IEnumerable<T>接口;
5.WCF自定義集合類型使用[DataMember]標(biāo)記的IList將集合項(xiàng)向客戶端公開.
樣例如下:
- 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自定義集合類型相關(guān)概念總結(jié)。