我想将一个字符串转换为Type。是使用此代码:
private static T CastToT<T>(string value)
{
return (T) Convert.ChangeType(value, typeof (T));
}
Type nr5 = CastToT<Type>(typeof(Class1).ToString());
但是我得到了一个InvalidCastException。
从'System.String'到'System.Type'的无效转换。
为什么我不能将字符串转换为Type?
答案 0 :(得分:3)
因此,如果您想根据名称检索类型,您只需使用此方法:
Type.GetType(typeName);
typeName是要检索的类型的全名。如果您要查找的类型位于当前程序集或mscorlib.dll中,则此方法将起作用。
例如,根据您的示例:
private static Type CastToType(string value)
{
return Type.GetType(value);
}
然后通过提供类型的FullName来调用该方法:
Type nr5 = CastToType(typeof(Random).FullName);
// nr5 will be null if no corresponding type is found.
if (nr5 != null && nr5.FullName == typeof(Random).FullName)
{
// success
}
答案 1 :(得分:-1)