2014-01-14 59 views
3

我試圖序列具有私有成員一個簡單的自定義類,使用protobuf-net庫,對於Windows應用商店風格的應用程序:序列化私有成員protobuf網爲Windows Store應用程序

[ProtoContract] 
class ProtoTest 
{ 
    [ProtoMember(1)] 
    string Test; 

    public ProtoTest(string test) 
    { 
     this.Test = test; 
    }   
} 

當我序列一個私有成員永遠不會被序列化的實例,而是被忽略。讓會員公開解決問題,但對我的應用程序來說並不是一個令人滿意的解決方案。有沒有什麼我在這裏做的不正確,或者有人知道這是否是一個已知的錯誤(我做了搜索但找不到任何東西)?

回答

0

樣本protobuf-net wiki

[ProtoContract] 
    public class StandaloneExtensible : IExtensible 
    { 
     [ProtoMember(1)] 
     public int KnownField { get; set; } 

     private byte[] buffer; 
     Stream IExtensible.BeginAppend() { 
      return Extensible.BeginAppend(); 
     } 
     Stream IExtensible.BeginQuery() { 
      return Extensible.BeginQuery(buffer); 
     } 
     void IExtensible.EndAppend(Stream stream, bool commit) { 
      buffer = Extensible.EndAppend(buffer, stream, commit); 
     } 
     void IExtensible.EndQuery(Stream stream) { 
      Extensible.EndQuery(stream); 
     } 
     int IExtensible.GetLength() { 
      return Extensible.GetLength(buffer); 
     } 
    } 
+0

雖然我可能能夠使用擴展來解決問題,但這並不能真正提供適當的解決方案。每當我在任何其他平臺(Windows/Mono/Xamarin.Android/Xamarin.iOS)上使用protobuf-net庫時,我總能夠序列化私有成員。你知道這是否是Windows應用商店應用程序的一個基本限制,它可以防止私有成員被序列化? – mcd40

+0

如果您在Windows中使用它,則不應該有任何限制。它是相同的版本嗎?就我個人而言,我之前沒有與這個圖書館合作過。 – crea7or

相關問題