2

DataContractを介したシリアル化でのラウンドトリップのサポートについて学びました。このメカニズムで間違いを犯すことは間違いないので、Visual Studioで単体テストを確立して、ファイルの新しいバージョンに問題がないかどうかをテストしたいと思います。

これを達成するために、私はしたいと思います

  1. 単体テストで最新バージョンのドキュメントオブジェクトを作成する
  2. 次に、このオブジェクトをMemoryStreamにシリアル化します
  3. このオブジェクトを古いバージョンのアプリケーションで逆シリアル化します
  4. この古いオブジェクトをMemoryStreamにシリアル化します
  5. このオブジェクトを現在のバージョンで逆シリアル化します
  6. 最初のオブジェクトと最後のオブジェクトのプロパティが同一であるかどうかを確認します

これは単純に聞こえますが(またはそうではないかもしれません)、私の問題は、単体テストで現在のバージョンのアプリケーションと古いバージョンのアプリケーションを同時に参照する必要があることです。

したがって、このオブジェクトを作成しようとすると、このタイプが2つのアセンブリで定義されているというエラーが表示されます。

だから私の質問は、同じエクスポートを持つアセンブリへの2つの参照をどのように処理できるかということです。

私は次のようなことをすることができますか

OldAssembly.MyClass old;
CurrentAssembly.MyClass new;
4

1 に答える 1

1
  > how can I handle two references to assemblies that have the same exports.

参照されるすべてのアセンブリに対してexternエイリアスを宣言できます。このエイリアスは通常globalですが、コンパイラのコマンドライン引数として、またはVisualStudioのReferencedAssemlys/ {MyAssemly} / Properties/Aliaseで独自に宣言できます。

あなたのプログラムでは、あなたが使用することができます

old::My.NameSpace.MyClass old;
global::My.NameSpace.MyClass new;
于 2013-01-21T17:09:59.023 に答える