如何在C#中从字符串创建实例?

Ben*_*n S 12 c# reflection

我正在从XML中读取信息,其中包含我需要实例化的对象类型及其构造函数参数.

对象类型实际上位于兄弟命名空间内的另一个项目中.(我需要在Company.Project1类中创建一个Company.Project2.Type.)

我发现了这个问题,但它没有处理构造函数参数或它在另一个命名空间中的事实.

我怎样才能做到这一点?

编辑:项目属性中未正确设置程序集名称和默认名称空间.

Jon*_*eet 31

  • 您需要指定完整的类型名称Type.GetType(),包括名称空间,例如"Company.Project2.Type"
  • 如果类型不在同一个程序集(或mscorlib)中,则还需要提供程序集名称,包括强类型的版本信息.例如,对于非强类型程序集Company.Project2.dll,您可以指定"Company.Project2.Type,Company.Project2".
  • 要使用参数调用构造函数,您可以调用Activator.CreateInstance(Type, Object[])或获取所需的确切构造函数Type.GetConstructor(),然后调用ConstructorInfo.Invoke().

如果这没有帮助,请提供更多信息.