假设我有一个像
var T = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
,它是一个可空的日期时间。
T.FullName
给我:
"System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"
我如何从类型中提取DateTime?
或Nullable<DateTime>
作为字符串表示?
可以这样:
var T = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
Type nullableType = Nullable.GetUnderlyingType(T);
string typeName = nullableType != null ? nullableType.Name + "?" : T.Name;
Type.FullName
返回通用参数的完整程序集限定名。但是ToString()
方法会打印一个更友好的名称,也许这就是你想要的:
System.Nullable`1[System.DateTime]
请注意,如果泛型参数不是来自mscorlib
库,ToString
返回的类型名称可能无法被Type.GetType(string)
方法解析。