【发布时间】:2018-02-14 03:59:15
【问题描述】:
我有以下情况,我得到一个如下所示的字符串
"System.DateTime?"
或
"int?"
我希望能够做的是检索该字符串的 System.Type,如下所示:
{Name = "Nullable
1" FullName = "System.Nullable1[[System.DateTime, mscorlib,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089]]"}
现在我知道如何从字符串中检索类型了,我可以在处理不可为空的类型时说 Type.GetType("System.DateTime"),或者在我知道 DateTime 可以为空时说 typeof(DateTime?),但在这种情况下,我不知道what 可以为空的类型可能会通过并且只会将其作为字符串接收。
【问题讨论】:
-
我猜应该是
Nullable<T>。 -
是什么生成了该字符串,为什么它没有为该类型生成正确的名称?
-
@gunr2171 他们有一个字符串,而不是
Type,因此该帖子并没有真正的帮助。他们也不需要底层类型,他们需要NullableType值。 -
您是否需要支持 any 字符串,这些字符串可能会在 .NET 中命名为合法类型,或者您需要支持的内容有限?我问是因为......你需要支持 this 字符串吗?
"Namespace1.Namespace2.Generic<int, string>.Nested.Inner<DateTime>.NestedInner<int?>"?