是否可以通过反射确定对象类型的别名?给出以下示例,其中myObject的类型为System.Int32 - 例如
Type t = myObject.GetType();
Run Code Online (Sandbox Code Playgroud)
t.Name将是Int32.但是,我想确定相关对象的可能别名(如果有的话),以便除了Int32 之外我还可以解析int 的类型名称
我不打算花很多时间在这上面.如果没有一个极其简单的内置解决方案,我只会自己映射这些值.=)
没有直接反射,没有."类型名称"(正如您所说)"int"根本不是类型名称,而是语言关键字.
当然,您可以使用字典将类型名称中的查找存储到较短的便利形式中.但是反射API中没有任何内容可以帮助您.
您可以使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |