C#公共类别别名?

YWE*_*YWE 6 .net c#

我想要做的是在一个新的命名空间中用C#编写一些类,它们充当另一个命名空间中的类的包装类.有时候不需要包装类,但我仍然想在新的命名空间中使用相应的类.我想要一个完整的课程副本.有没有办法通过引用另一个类的定义在新命名空间中定义类?换句话说,我想要一个别名.

为了阐明我的意思,如果现有的命名空间名为"Namespace1",而新的命名空间命名为"Namespace2",则在Namespace2中使用如下代码:

using Class1 = Namespace1.Class1;
Run Code Online (Sandbox Code Playgroud)

不会起作用,因为Namespace2.Class1不存在.Class1只对Namespace2设置为"private",而对Namespace2设置为"public".如果我可以Namepsace2.Class1从命名空间外部使用,如果仍然可以参考Namespace1.Class1,那么这就是我想要的.

我想可能有一种方法可以通过属性或反射实现这一点.如果有一些预处理器指令或宏可以复制代码也可以工作,但显然C#没有这样的东西.

Mic*_*oie 5

您可以使用 Using创建类型的别名

using Project = PC.MyCompany.Project;
Run Code Online (Sandbox Code Playgroud)


Jer*_*Gee 3

听起来您需要将一个类定义映射到另一个类定义。

这可以手动完成(通过大量样板代码),也可以通过AutoMapper等工具自动完成。