Csharp/C#教程:如何在C#中从字符串创建实例?分享


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

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

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

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

我怎样才能做到这一点?

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

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

如果要在运行时动态创建类型,Activator.CreateInstance方法将为您执行此操作。 如果您发出的是具有带参数的构造函数的类型,则此重载将执行此操作。 例如, http://msdn.microsoft.com/en-us/library/wcxyzt4d.aspx

我建议通过重载查看最佳匹配。

命名空间问题应该不是相关的 – 只要dll在bin目录或GAC中就可以了。 如果程序集名称很强,则规则可能会更改。

你能提供代码的代码片段吗?使用你链接的方法吗? 这+你看到的错误将非常有帮助! [update]使用Activator.CreateInstance的快速示例,它处理带有参数的构造函数。

上述就是C#学习教程:如何在C#中从字符串创建实例?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { BaseProduct b =(BaseProduct)System.Activator.CreateInstance(Type.GetType("ConsoleApplication1.Product") ,new object[]{typeof(string)}, new object[]{"123"} ); //Activator..::.CreateInstance Method (Type, array[]()[], array[]()[]) } } public class Product: BaseProduct{ public Product(string id) { } public string Id {get;set;} } public abstract class BaseProduct { abstract public string Id { get; set; } } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/985390.html

(0)
上一篇 2021年12月21日
下一篇 2021年12月21日

精彩推荐