WCF中DataMember的Name属性似乎无效。

4

我有一个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;
}

但是当看起来像数据成员Name的属性似乎没有起作用。 我已经尝试使用WCF测试客户端,并且在引用WCF时,它显示的属性类似于OrderId和OrderDetails,而不是我在Name属性中声明的那个。 请帮助我进行更正。

1个回答

8

我认为您忘记在类上使用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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接