- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在迁移一个用 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
之类的名称当然可行,但我们被要求不要这样做,以便使客户端代码更易于迁移。
最佳答案
您可以使用 extern alias从不同程序集中引用具有相同完全限定名称的类型。选择对 LibraryCS 的引用并将属性页中的别名从“global”更新为“LibraryCS”,并将 extern alias LibraryCS;
添加到源文件的顶部,然后您可以使用 LibraryCS::MyNamespace.MyClass
引用 LibraryCS 中的类。您可以使用 MyNamespace.MyClass
或 global::MyNamespace.MyClass
来引用 LibWrapper 中的类,或者您也可以为该引用使用别名。
关于c# - 两个程序集中具有相同名称的类(有意),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13792156/
我正在迁移一个用 C++ 编写并具有 C# 包装器的库。 C# 包装器 (LibWrapper) 有一组带有命名空间的类,例如: namespace MyNamespace class MyCl
我正在迁移一个用 C++ 编写并具有 C# 包装器的库。 C# 包装器 (LibWrapper) 有一组带有命名空间的类,例如: namespace MyNamespace class MyCl
我有一个迁移要运行,但在它运行之前我想验证某些条件(即迁移调用模型上的实例方法,我想确保该方法在运行迁移之前存在)。 考虑到这一点,我找不到任何说明在验证未通过时如何停止迁移的文档。引发异常似乎最有可
我有几个 Django 应用程序: INSTALLED_APPS = ( 'geonode.exposure', 'geonode.isc_viewer', 'geonode.
我是一名优秀的程序员,十分优秀!