1

私はオブジェクトを持っています

  • Serializable 属性が設定されていません
  • プロパティがあり、タイプがあり、Serializable 属性が設定されていません
  • 私は制御できません(つまり、クラスを編集できません)

THISを読んでみましたが、 Sharpserializerを使用するときにこれを修正する置換クラスについて説明していますが、率直に言って、オブジェクトのプロパティがわからない場合にこれを行う方法がわかりません。

これを実行できるシリアル化フレームワークはありますか?

編集:私はprotobuf.netを調べていますが、私のシナリオでそれを機能させる方法がわかりません-Marcがその日を救うためにスイングしてくれることを願っていますか? :) - 私とまったく同じ問題であるこれを読みましたが、使用時に「タイプが予期されておらず、コントラクトを推測できません」というメッセージが引き続き表示されます

private static byte[] ClienToBytes(IScsClient client)
{
    using (var memoryStream = new MemoryStream())
    {
        RuntimeTypeModel.Default.Add(typeof(IScsClient), true).SetSurrogate(typeof(BinaryFormatterSurrogate<IScsClient>));

        Serializer.Serialize(memoryStream, client);
        return memoryStream.ToArray();
    }
}

RunTimeTypeModel を間違って使用していますか?

4

1 に答える 1

0

私はprotobuf-netを試してみます。こちらをご覧ください: http://code.google.com/p/protobuf-net/

ウェブサイトからの引用:

プロトコル バッファは、Google がデータ通信の多くに使用するバイナリ シリアル化形式の名前です。次のように設計されています。

  • サイズが小さい - 効率的なデータ ストレージ (xml よりもはるかに小さい)
  • 処理が安価 - クライアントとサーバーの両方で
  • プラットフォームに依存しない - 異なるプログラミング アーキテクチャ間で移植可能
  • 拡張可能 - 新しいデータを古いメッセージに追加する
于 2013-08-30T11:03:22.263 に答える