2011-11-06 73 views
1

爲什麼不能將ProtoContract應用於自定義結構?根據this question和相關的答案和代碼,結構顯然可以被protobuf-net使用DataContract代替序列化。使用此解決方法有什麼缺點嗎? ProtoContract表示它只能應用於類和枚舉;這是v1的過時限制嗎?我正在使用最新版本(r470)。爲什麼ProtoContractAttribute在結構上無效?

回答

1

v1在結構中不可用,由於v1不支持結構,所以這不是不合理的。它應該在R470工作;如果它不工作,你可能實際上並沒有使用r470!下面的代碼:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | 
    AttributeTargets.Enum | AttributeTargets.Interface, 
    AllowMultiple = false, Inherited = true)] 
public sealed class ProtoContractAttribute : Attribute 
{ ... } 

我敢肯定有使用這個測試,我知道一個事實,我沒有足夠的「日常工作」的工作本週這樣序列化結構與v2。

請檢查您使用的是正確的DLL。

+0

我開始使用v1,但卸載它並切換到r470。我必須要protobuf-net.dll的每個參考都是2.0.0.470版本。我想我必須自己把那部分弄清楚。一如既往,感謝您的快速幫助。 – dlras2

+0

顯然我的問題是與Visual Studio - 每個參考聲稱是R470,但我被困在v1。我卸載並重新加載了所有內容,並修復了它。 – dlras2