我正在从XML中读取信息,其中包含我需要实例化的对象类型及其构造函数参数.
对象类型实际上位于兄弟命名空间内的另一个项目中.(我需要在Company.Project1类中创建一个Company.Project2.Type.)
我发现了这个问题,但它没有处理构造函数参数或它在另一个命名空间中的事实.
我怎样才能做到这一点?
编辑:项目属性中未正确设置程序集名称和默认名称空间.
您需要指定完整的类型名称Type.GetType()
,包括名称空间,例如"Company.Project2.Type"
如果类型不在同一个程序集(或mscorlib)中,则还需要提供程序集名称,包括强类型的版本信息.例如,对于非强类型程序集Company.Project2.dll
,您可以指定"Company.Project2.Type,Company.Project2".
要使用参数调用构造函数,您可以调用Activator.CreateInstance(Type, Object[])
或获取所需的确切构造函数Type.GetConstructor()
,然后调用ConstructorInfo.Invoke()
.
如果这没有帮助,请提供更多信息.