2012-06-20 22 views
1

protobuf網有一個選項序列化類如果類在Protobuf-net中沒有屬性,是否有一種方法僅序列化公共字段?

[ProtoContract(ImplicitFields = ImplicitFields.AllPublic)] 
public class Customer 
{ 

} 

的公共領域要啓用的protobuf用於多數DTO的我有這個屬性添加到每個類的工作。 有沒有一種方法可以在全局設置它,所以如果被序列化的類沒有像ProtoContract或DataContract這樣的屬性,它默認會使用「ImplicitFields.AllPublic」?

+0

你可以看到一些面向方面的編程:-)。並將該屬性注入到所有公共字段。 – MBen

回答

2

不,目前不支持。在V2,你可以,但是,告訴它的類型在運行時,通過

RuntimeTypeModel.Default.Add(typeof(Customer), false).Add({fields}); 

,但是目前還沒有從那裏接受ImplicitFields一個選項(這只是一個疏忽,並會在加入未來版本)。

我也和幾個人討論過添加一個事件,這個事件是在第一次看到一個新類型時觸發的,這將允許你通過訂閱一個事件來做到這一點。雖然這還沒有被寫入。

+0

自從添加了這個全局的'ImplicitFields'選項嗎?似乎無法在API中找到它。 –

相關問題