根据方法更改数据库名称

时间:2011-04-06 11:40:01

标签: wcf datacontract datamember

 [DataContract()]
 public class Contract
 {
    .........
Some Properties with DataMembers Attribute.
    ............
    ..............

  [DataMember(Name = "FirstName")]
  public string Name  {   get;   set;  }
 }

我上课,我有两个网络方法(操作)

在第一个Web方法中,我希望将Name公开为FirstName,而在第二个Web方法中公开Name作为LastName。

我不想创建单独的数据合同。

请告诉我如何实现这个目标?

2 个答案:

答案 0 :(得分:0)

您可以使用反射并在运行时更改属性的值,具体取决于您当前使用的方法。查看StackOverflow上的这些链接:

How to set attributes values using reflection Change Attribute's parameter at runtime

但我认为最好的办法是要么有2个单独的合同,要么与两个属性签订合同。

答案 1 :(得分:0)

您还可以在序列化期间实现此类型的特殊情况的代理。例如,请参阅Data Contract Surrogate sample