一个关于wcf的常识问题

I_am_Z 2013-04-18 03:49:54
小弟最近在学习wcf,看到有的类的属性上的特性是这样[DataMember]有的是[DataMember(Name="Age")],请问,加这个Name有什么作用,不加有什么影响没有?最好能详细的说明这里的用法和概念,谢谢各位大神先。

...全文
125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_am_Z 2013-04-18
  • 打赏
  • 举报
回复
引用 5 楼 qldsrx 的回复:
不需要定义Name,默认取属性名,除非你要将某个列改名传输,但不方便修改属性名。
ok,基本确定了我的理解,谢谢大家。
qldsrx 2013-04-18
  • 打赏
  • 举报
回复
不需要定义Name,默认取属性名,除非你要将某个列改名传输,但不方便修改属性名。
comablack 2013-04-18
  • 打赏
  • 举报
回复
一般没必要加
trust_love 2013-04-18
  • 打赏
  • 举报
回复
mark 一直没用到wcf 也一直没机会接触 out了 抽时间学习
I_am_Z 2013-04-18
  • 打赏
  • 举报
回复
引用 1 楼 yaotomo 的回复:
DataMemberAttribute 使用DataMemberAttribute标记的类型成员才能成为数据契约的数据成员。这个和服务契约中的OperationContractAttribute类似。DataMemberAttribute特性有如下四个属性: EmitDefaultValue:表明在数据成员的值等于默认值的情况下,是否还须要将其序列化到最终的XML中,默认值为true,表示……
看完我的结论是,这个name是该属性的别名,只会体现在需要序列化后的xml中,而对程序实际的通信代码中不会体现也没有丝毫影像,即使不定义name也无所谓,是这样理解吗?
yaotomo 2013-04-18
  • 打赏
  • 举报
回复
DataMemberAttribute 使用DataMemberAttribute标记的类型成员才能成为数据契约的数据成员。这个和服务契约中的OperationContractAttribute类似。DataMemberAttribute特性有如下四个属性: EmitDefaultValue:表明在数据成员的值等于默认值的情况下,是否还须要将其序列化到最终的XML中,默认值为true,表示默认值会参与序列化。 IsRequired:bool类型,表明属性成员是否是必须的成员,默认值为false。 Name:数据成员的别名。 Order:相应的数据成员在最终序列化的XML中出现的位置,默认是按字母顺序排列的。 [DataContract(IsReference=true,Name="MyUser",Namespace="http://oec2003.cnblogs.com")] public class User { [DataMember(EmitDefaultValue=true,IsRequired=true, Name="Oec2003_Age",Order=1)] public int Age { get; set; } [DataMember(EmitDefaultValue = true, IsRequired = true, Name = "Oec2003_Name", Order = 2)] public string Name { get; set; } [DataMember(EmitDefaultValue = true, IsRequired = false, Name = "Oec2003_Email", Order = 3)] public string Email { get; set; }

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧