0

我有一个这样的部分

<mySection type="Namespace.MyClass, AssemblyName" />

在我的代码中,我需要创建一个 MyClass 的实例,所以我所做的是这样的:

string type = GetMySectionType(); // "Namespace.MyClass, AssemblyName"

var typeParts = type.Split(',');
var className = typeParts[0].Trim();
var assemblyName = typeParts[1].Trim();
var assembly = Assembly.Load(assemblyName);
var myObj = (MyClass)assembly.CreateInstance(className);

我确信有更好的方法可以做到这一点,而无需拆分字符串,但我在谷歌中没有找到任何关于它的信息。

编辑:框架中是否有一些内置的东西将类型作为“类型”而不做任何事情?

4

1 回答 1

1

您可以使用 GetType(string typename) 方法。例如像这样:

string type = GetMySectionType(); // "Namespace.MyClass, AssemblyName"
Type myType = Type.GetType(type);
var myObj = (MyClass)Activator.CreateInstance(myType);

请参阅此页面了解更多信息。

于 2010-10-08T10:35:39.143 回答