我想创建一个值类型的实例,例如 、System.String
System.Boolean
、System.Int32
等。我得到类型的限定名称,如 System.String
或 MyNamespace.Employee
,我必须创建一个实例并返回.我使用 Activator.CreateInstance
和 FormatterServices.GetUninitializedObject
来创建实例。但是在值类型的情况下它会失败。对于值类型,我不能硬编码逻辑。我需要一种通用的方法来创建值类型和引用类型的实例。
最佳答案
你到底想做什么? FormatterServices.GetUninitializedObject
主要用于序列化代码;除此之外,您不应该真正使用它。 听起来您可能只需要TypeConverter
之类的东西,即(对于这些类型)
TypeConverter tc = TypeDescriptor.GetConverter(someType);
object obj = tc.ConvertFromString(s);
关于c# - 如何使用反射创建值类型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1997815/