2

我刚刚了解了通过 DataContract 支持序列化中的往返。因为我确信我会在这个机制上出错,所以我想在 Visual Studio 中建立一个单元测试来测试我的文件的新版本是否正常。

为了实现这一目标,我想

  1. 在单元测试中创建最新版本的文档对象
  2. 然后将此对象序列化为 MemoryStream
  3. 使用我的应用程序的旧版本反序列化此对象
  4. 将此旧对象序列化到 MemoryStream
  5. 使用当前版本反序列化此对象
  6. 检查第一个对象和最后一个对象的属性是否相同

这听起来很简单(或者可能不是?),我现在的问题是单元测试需要同时引用我的应用程序的当前版本和旧版本的应用程序。

因此,如果我现在尝试创建此对象,则会收到一条错误消息,指出此类型是在两个程序集中定义的。

所以我的问题是,如何处理对具有相同导出的程序集的两个引用。

我可以做类似的事情吗

OldAssembly.MyClass old;
CurrentAssembly.MyClass new;
4

1 回答 1

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

您可以为每个引用的程序集声明一个外部别名。此别名通常是global,但您可以将自己的别名声明为编译器的命令行参数,或在 Visual Studio 中的 ReferencedAssemlys/{MyAssemly}/Properties/Aliase 下。

在您的程序中,您可以使用

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