2014-03-25 106 views
0

我有一個類數據類型

namespace MyNamespace1 
{ 
    class MyClass 
    { 
     public string MyName { get; set; } 
     public int? MaxHeaderLength { get; set; } 
     public System.Collections.Generic.List<MyClass.ViewModel> Preferences { get; set; } 
    } 
} 

namespace MyNamespace2 
{ 
    internal class myClass1 
    { 
     public static void Main(string[] args) 
     { 
      var properties = loading assembly of the MyClass of MyNamespace1 
      var prop = properties.GetProperties(); 
      foreach (var propertyInfo in prop) 
      { 
       Console.WriteLine(propertyInfo.PropertyType.FullName); 

      } 
     } 
    } 
} 

當我想用反射

我收到類型爲

閱讀在運行時的性能

System.String,

System.Nullable`1 [[System.Int32,mscorlib程序,版本= 4.0.0.0, 文化=中性公鑰= b77a5c561934e089]],

System.Collections.Generic.List`1 [[System.Web.Mvc.SelectListItem, System.Web.Mvc,版本= 3.0.0.0,文化=中性, 公鑰= 31bf3856ad364e35]]),

但我想找回作爲

string, 

int?, 

System.Collections.Generic.List<MyClass.ViewModel> 

可有人請我提供的解決方案。

+1

你想*友好的名字*。檢查http://stackoverflow.com/questions/16466380/get-user-friendly-name-for-generic-type-in​​-c-sharp和http://stackoverflow.com/questions/4615553/c-sharp-get - 用戶友好的名稱 - 的 - 簡單的類型,通過反射 – Maarten

回答

0

string,int?List<MyClass.ViewModel>都是C#構造。他們不在.NET本身。

所以你只需建立一個查找表或一個巨大的switch將類型名稱轉換爲.NET關鍵字。