是否可以使用动态字符串创建一个不存在特定名称的类。我问这个是因为我想根据一些字符串结果创建一个类。
如果可能,请分享一些示例或一些参考链接。
我看到我的问题令人困惑,所以这里有更多的澄清:
假设我有一个返回字符串的方法/函数/过程 - MyNewClassName()。我想创建一个名称等于MyNewClassName()结果的类,它是动态的,也是一个自定义名称。
来自评论的编辑 我将它用作某种调试,因为我试图远程修复一些异常,问题是系统不提供异常消息只有异常的类型。所以我的想法是创建以实际异常的结果命名的自定义异常。
答案 0 :(得分:2)
如果您在字符串中拥有类程序集限定的全名(从whereever获取,用户可以输入或者其他内容),您可以执行以下操作:
var name = "MyNameSpace.MyType, MyAssembly";
var type = Type.GetType(name);
var instance = Activator.CreateInstance(type);
这假定您指定的程序集已经加载。
答案 1 :(得分:1)
您可以使用Activator.CreateInstance(type)
获取某个类型的实例。要按类型名称获取类型,请参阅此处:Get Type by Name