您的位置:首页 > 其它

WCF自定义集合类型作为服务契约注意事项

2012-06-23 00:06 531 查看
WCF自定义集合类型可以作为服务契约进行发布,其中需要注意的是必须实现IEnumerable接口;必须使用[Serializable]和[CollectionDataContract]标记等等。

AD:

当我们在使用WCF自定义集合类型当做服务契约发布的时候,需要注意很多问题。在这篇文章中就总结了一些注意事项,希望对大家有些帮助。

WCF编程生命周期基本步骤详解

全面解读WCF服务状态基本概念

WCF客户端处理详细步骤解析

WCF禁用安全配置指导手册

WCF跨域访问问题解决方法详解

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自定义集合类型相关概念总结。

原创url:http://developer.51cto.com/art/200912/171735.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐