[DataContract()]
public class Contract
{
.........
Some Properties with DataMembers Attribute.
............
..............
[DataMember(Name = "FirstName")]
public string Name { get; set; }
}
我上课,我有两个网络方法(操作)
在第一个Web方法中,我希望将Name公开为FirstName,而在第二个Web方法中公开Name作为LastName。
我不想创建单独的数据合同。
请告诉我如何实现这个目标?
答案 0 :(得分:0)
您可以使用反射并在运行时更改属性的值,具体取决于您当前使用的方法。查看StackOverflow上的这些链接:
How to set attributes values using reflection Change Attribute's parameter at runtime
但我认为最好的办法是要么有2个单独的合同,要么与两个属性签订合同。
答案 1 :(得分:0)
您还可以在序列化期间实现此类型的特殊情况的代理。例如,请参阅Data Contract Surrogate sample。