2010-08-04 66 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 
相關問題