4

これは一見簡単な質問のように思えますが、私はこれについてコミュニティに連絡したいと思いました。ストリームで.NETタイプをシリアル化していますが、反対側でタイプを逆シリアル化する方法を理解できるように、各タイプを一意に識別する方法が必要です。私はさまざまなアプローチを考えてきました:

  1. メッセージタイプを識別するために整数を必要とする属性で各タイプに注釈を付けます
  2. GUIDを使用することを除いて、#1と同じことを行います
  3. 完全修飾名のハッシュ

属性を必要とせずにこれを実行できるようにしたいと思います。整数を使用すると、競合が発生しやすくなります。新しいタイプを作成するたびにGUIDを生成するのは面倒です。3番目のオプションは可能であるように見えますが、多少孤立しているとはいえ、競合の可能性もあります。

私ができるようにしたいのは、この一意性を決定論的な方法で推測して、オブジェクトをなんらかの方法でマークアップしなくても、反対側で任意のオブジェクトを渡して逆シリアル化できるようにすることです。既知のすべてのタイプを両端で登録する方法がすでにあると仮定します。したがって、メッセージが送信される前に、両端に受け入れ可能なタイプのリストがすでにあります。私がしたいのは、それらの既知のタイプを登録するプロセスをより不格好にすることです。

編集:私は、必要な独自性を実現しながら、できるだけ小さくしたいと思っています。

4

2 に答える 2

4

Type.GUIDたとえば、使用できます...

それがあなたのケースに合わない場合は、詳細を提供してください...

于 2012-04-14T20:08:57.283 に答える
1

利用可能な回答に加えて、完全に修飾されたタイプ名を使用することをお勧めします。アプリケーションドメイン内の一意性はすでに保証されています。

于 2012-04-14T20:11:53.490 に答える