servicestack,datacontractserializer,datacontract,C#,servicestack,Datacontractserializer,Datacontract" /> servicestack,datacontractserializer,datacontract,C#,servicestack,Datacontractserializer,Datacontract" />

C# 文本:强制序列化未使用DataMember属性修饰的属性

C# 文本:强制序列化未使用DataMember属性修饰的属性,c#,servicestack,datacontractserializer,datacontract,C#,servicestack,Datacontractserializer,Datacontract,我有以下课程(简化) 我正在使用ServiceStack序列化对象以用于日志记录,并让DataContractSerializer完成其余工作。ServiceStack按预期不会序列化序列,因为它没有使用DataMember属性修饰 有没有办法强制ServiceStack序列化此属性 Marc Gravell对这个类似问题的回答似乎暗示了一种不同的方法,但我想我会问。用DataContract/DataMember属性装饰类是专门用于选择要序列化的属性。如果要序列化所有属性,请删除所有属性 查看

我有以下课程(简化)

我正在使用ServiceStack序列化对象以用于日志记录,并让
DataContractSerializer
完成其余工作。ServiceStack按预期不会序列化
序列
,因为它没有使用
DataMember
属性修饰

有没有办法强制ServiceStack序列化此属性


Marc Gravell对这个类似问题的回答似乎暗示了一种不同的方法,但我想我会问。

DataContract/DataMember
属性装饰类是专门用于选择要序列化的属性。如果要序列化所有属性,请删除所有属性


查看此答案以了解其他解决方法。

问题是:我希望所有属性都序列化以用于服务中的日志记录,包括
序列
,但我不希望该属性在API中泄漏(客户端不需要知道),这就是为什么它没有用
DataMember
属性修饰的原因。这更清楚一点吗?请使用其他工具进行日志记录。正如我所说的,
DataMember
属性专门用于选择哪些属性被序列化。i、 你问的是如何改变他们想要的行为。用点别的,我再清楚不过了。我理解你的意思。我知道我想做的很奇怪,但之前使用过并喜欢ServiceStack.Text,我想取消手动序列化。不需要手动映射,也就是说,您可以维护一个类似的类,只包含要记录的字段,并使用自动填充属性,然后可以序列化以进行记录。
[DataContract]
public class ServiceResponse
{
    public int Sequence { get; set; }

    [DataMember]
    public ServiceResponseStatus Status { get; set; }
}