2010-08-04 40 views
3

是否可以通过反射来确定对象类型的别名(s)?给出下面的例子,其中myObject的是类型System.Int32的 - e.g以编程方式在.NET中获取类型的别名

Type t = myObject.GetType(); 

t.Name的Int32。不过,我想找出不可能性别名(ES),如果有的话,有问题的对象,这样我就可以解决的,除了INT的类型名称的Int32

我不希望花费大量时间在此。如果没有一个极其简单的内置解决方案,我只需自己映射这些值。 =)

在此先感谢!

+3

INT作为.NET类型在运行时 – CarneyCode 2010-08-04 20:23:46

回答

5

不直接用反射,没有。 “类型名称”(正如你所说的那样)“int”根本不是一个类型名称,而是一个语言关键字。

当然,您可以使用字典将查找内容从类型名称存储到较短的便利表单中。但是反射API中没有任何东西会为你做。

+0

配不上我不存在语言得到特定类型的别名。谢谢! – 2010-08-04 20:28:30

0

别名似乎只是编译时。注意它们如何不在给定的源文件之外应用。他们只是便利,仅此而已。

5

可以使用的CodeDOM类

var cs = new CSharpCodeProvider(); 
    var vb = new VBCodeProvider(); 

    var type = typeof (int); 
    Console.WriteLine("Type Name: {0}", type.Name); // Int32 
    Console.WriteLine("C# Type Name: {0}", cs.GetTypeOutput(new CodeTypeReference(type))); // int 
    Console.WriteLine("VB Type Name: {0}", vb.GetTypeOutput(new CodeTypeReference(type))); // Integer 
相关问题