C#创建一个名为动态字符串的类

时间:2013-11-25 12:18:44

标签: c# class dynamic

是否可以使用动态字符串创建一个不存在特定名称的类。我问这个是因为我想根据一些字符串结果创建一个类。

如果可能,请分享一些示例或一些参考链接。

我看到我的问题令人困惑,所以这里有更多的澄清:

假设我有一个返回字符串的方法/函数/过程 - MyNewClassName()。我想创建一个名称等于MyNewClassName()结果的类,它是动态的,也是一个自定义名称。

来自评论的

编辑 我将它用作某种调试,因为我试图远程修复一些异常,问题是系统不提供异常消息只有异常的类型。所以我的想法是创建以实际异常的结果命名的自定义异常。

2 个答案:

答案 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