WCF中DataMember的Name属性看起来不起作用

时间:2017-12-14 07:47:02

标签: c# wcf .net-4.5

我将WCF服务暴露给多个客户端。在某些客户端数据库名称中,外壳不合适。我的类属性根据外壳标准(如

)具有无效的属性名称
public class TransactionParamter
{
    [DataMember]
    public string orderId;
    [DataMember]
    public string orderDetails;
    [DataMember]
    public double orderSumTotal;
}

我试图将其更改为

public class TransactionParamter
{
    [DataMember(Name= "orderId")]
    public string OrderId;
    [DataMember(Name= "orderDetails")]
    public string OrderDetails;
    [DataMember(Name= "orderSumTotal")]
    public double OrderSumTotal;
}

但看起来像数据成员名称属性不起作用。 我已经尝试过WCF测试客户端,在进行WCF参考时,它显示了像OrderId和OrderDetails这样的peroperty,而不是我在Name Attribute中声明的那个。 请帮我纠正

1 个答案:

答案 0 :(得分:5)

我相信你忘了用DataContract装饰你的课程。您需要这样才能使自定义数据成员名称起作用。

[DataContract(Name="transactionParamter")]
public class TransactionParamter
    {
        [DataMember(Name= "orderId")]
        public string OrderId;
        [DataMember(Name= "orderDetails")]
        public string OrderDetails;
        [DataMember(Name= "orderSumTotal")]
        public double OrderSumTotal;
}