我有一个班级
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,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = b77a5c561934e089]],
System.Collections.Generic.List`1 [[System.Web.Mvc.SelectListItem, System.Web.Mvc,Version = 3.0.0.0,Culture = neutral, 公钥= 31bf3856ad364e35]]),
但我想检索为
string,
int?,
System.Collections.Generic.List<MyClass.ViewModel>
任何人都可以给我解决方案。
答案 0 :(得分:0)
string
,int?
和List<MyClass.ViewModel>
都是C#构造。他们不在.NET本身。
因此,您只需构建一个查找表或巨型switch
即可将类型名称转换为.NET关键字。