2013-04-12 38 views
1

我有以下類(簡化)。ServiceStack.Text:強制未使用DataMember屬性裝飾的屬性的序列化

[DataContract] 
public class ServiceResponse 
{ 
    public int Sequence { get; set; } 

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

我使用ServiceStack連載進行日誌記錄的對象,並讓DataContractSerializer做休息。如預期的那樣,ServiceStack將不會序列化Sequence,因爲它沒有用DataMember屬性進行裝飾。

有沒有辦法強制ServiceStack序列化這個屬性?

Marc Gravell對這個類似問題DataContract Serialization without DataMember Attribute的回答似乎提示了一種不同的方法,但我想我會問。

回答

2

DataContract/DataMember屬性裝飾您的課程是特別是用於選擇您希望序列化的屬性。如果你想要所有的屬性序列化刪除的所有屬性。

查看此答案的其他方式爲ignore properties in Servicestack serializers

+0

以下是我想要的所有屬性序列化在服務中的日誌記錄,包括'序列',但我不希望該屬性泄漏在API中(客戶端不應該知道它),這是爲什麼它沒有用'DataMember'屬性裝飾。這有點清楚嗎? – Moss

+0

使用別的東西來記錄。就像我所說的'DataMember'屬性**特別**用於選擇哪些屬性被序列化。即你在問如何扭轉它們準備用於**的確切行爲。使用別的東西 - 我不能比這更清楚。 – mythz

+0

我明白你的觀點。我知道我想要做的事很奇怪,但之前使用過並喜歡過ServiceStack.Text,我想要去掉手動序列化。 – Moss