WCF和[DataMember]属性

3

我有以下(简写)类别,通过WCF发送和接收到客户端:

public class Sparetime : ChartConfigurationBase, IChartConfiguration
{
    [DataMember]
    public int SparetimeConfigurationId { get; set; }

    public Single FeederOffRate { get; set; }
}

请注意第一个属性使用了DataMember属性,而第二个没有。我理解只有第一个属性会在WCF调用时被序列化并发送给客户端,这正确吗?


接口实现。图表未使用。不相关的,但您是否考虑过显式接口实现? - ta.speot.is
1个回答

8

是的,你说得对,MSDN文档指定了它:

当应用于类型的成员时,指定该成员是数据契约的一部分,并且可以由DataContractSerializer进行序列化。

你应该向你的类添加DataContract属性以使其可序列化:

[DataContract]
public class Sparetime : ChartConfigurationBase, IChartConfiguration
{
}

请注意,FeederOffRate将被设置为其默认值(对于引用类型为null)。

如果您想深入了解DataContract反序列化,可以查看http://msdn.microsoft.com/en-us/library/ms733127.aspx上的注释部分。不用客气。 - AlexH

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