【发布时间】:2011-03-02 09:32:25
【问题描述】:
我正在迁移一个用 C++ 编写并具有 C# 包装器的库。 C# 包装器 (LibWrapper) 有一组带有命名空间的类,例如:
namespace MyNamespace
class MyClass
class MyOtherClass
我的新库 LibraryCS 包含与 LibWrapper 相同的命名空间和类名(根据用户要求),所以我也有:
namespace MyNamespace
class MyClass
class MyOtherClass
现在迁移已经完成,我正在创建一个测试来比较使用这两个库的结果,以验证迁移。但是,当我尝试引用 MyNamespace.MyClass 时,我收到一个编译器错误(预期!),显示“MyNamespace.MyClass 在 LibWrapper 和 LibraryCS 中都定义了”。
有什么技巧可以解决这个问题,让我可以在同一个客户端代码中使用两个具有完全相同名称但来自不同程序集的类?
或者,还有其他方法可以测试吗?
将迁移的命名空间重命名为 MyNamespace2 之类的名称当然可以,但我们被要求不要这样做,以使客户端代码更易于迁移。
【问题讨论】:
-
是否可以为另一个命名空间中存在的类之一编写包装器?
-
如果我能够在相同的测试代码中同时运行两者,那可能是可以接受的。它将是一个仅用于测试目的的包装器。
-
"为了让客户端代码更容易迁移" 我感受到你被“管理”的痛苦。 (◔_◔) ;^D
标签: c# namespaces class