2

binaryformatter の代わりに protobuf-net を使用してクライアント/サーバー アプリケーションを実行すると、次の例外が発生します: "No serializer defined for type: System.Collections.Queue"。完全にはわかりませんが、何か間違ったことをしたことが原因かもしれません...辞書/リストについて既に質問しており、これらのタイプがサポートされているためです(オブジェクトをシリアル化できますか(メンバーを含む:辞書、リストなど)) protobuf-net? を使用して、Mono で MS.NET でデシリアライズするか、その逆を行います)。

http://code.google.com/p/protobuf-net/wiki/GettingStarted "サポートされています: IEnumerableを実装し、Add(T) メソッドを持つすべての型" および Queue http://msdn.microsoft .com/en-us/library/system.collections.queue.aspxには Add(T) がありません...

質問: しかし、私は完全に確認したい. protobuf-net はSystem.Collections.Queueをサポートしていますか?

4

1 に答える 1

1

現時点では、いいえ: ありません。シリアル化のために、データをリストとして扱うことをお勧めします。参考までに、XmlSerializerそれも嫌いです-これが のXmlSerializer出力ですQueue<string>

「System.Collections.Generic.Queue`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] にデフォルトのアクセサーを実装する必要があります。これは ICollection から継承するためです。」

于 2012-09-24T18:44:27.777 に答える