博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF中的自定义集合类型传输
阅读量:6482 次
发布时间:2019-06-23

本文共 986 字,大约阅读时间需要 3 分钟。

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();
        }
    }
}

转载地址:http://nrfuo.baihongyu.com/

你可能感兴趣的文章
rsync常见问题及解决办法
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
Linux五种IO模型
查看>>
Bootstrap技术: 模式对话框的使用
查看>>
小知识,用myeclipes找jar
查看>>
in-list expansion
查看>>
设计原则(四):接口隔离原则
查看>>
基于react的滑动图片验证码组件
查看>>
【学习笔记】阿里云Centos7.4下配置Nginx
查看>>
VuePress手把手一小時快速踩坑
查看>>
学习constructor和instanceof的区别
查看>>
Vijos P1881 闪烁的星星
查看>>
ABP理论学习之领域服务
查看>>
Qt 控制watchdog app hacking
查看>>
让所有IE支持HTML5的解决方案
查看>>
RDD之五:Key-Value型Transformation算子
查看>>