如何实现WCF中的自定义集合类型传输
2009-11-04 11:06
573 查看
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();
}
}
}
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中的自定义集合类型传输
- 利用 IEnumerable接口 实现自定义类型的集合的foreach遍历
- NHibernate自定义集合类型(中):通用实现方式
- QT 4.7 DBUS Binding如何支持自定义数据类型的传输(一)
- NHibernate自定义集合类型(中):通用实现方式
- 三层中如何在服务器与客户端之间传输自定义的'Record'类型数据的例子
- 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
- Opencv 例程讲解8 ----如何实现Mat以及自定义类型的读写操作
- C#如何实现自定义集合的IEnumerable 和 IEnumerator 接口并使用foreach访问自定义集合
- 4-4 求自定类型元素的平均 (10分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。 函数接口定义: ElementType Aver
- Swift编程语言中如何实现自定义类型的for-in循环(基于Swift 2.2)
- WCF实现自定义用户名和密码验证,并以https传输
- WCF自定义集合类型作为服务契约注意事项
- 如何使用反射确定一个属性是否实现了IList接口,如何确定元素量为空的集合的元素类型。
- NHibernate自定义集合类型(上):基本实现方式
- 如何应用Asp.Net Mvc内建功能(DefaultModelBinder)实现简单类型、复杂类型、集合类型,以及字典类型的自动绑定
- WCF如何克服HTTP传输协议的局限提供对不同消息传输模式的实现
- [Silverlight]WCF RIA SERVICE如何返回自定义类型(非Entity)
- C# 通过IEnumberable接口和IEnumerator接口实现自定义集合类型foreach功能
- 如何实现自定义 USB Bulk 批量传输设备