2010-10-08 51 views
0

configSection属性阅读我写这样的从类型“类型”

<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); 

我确定有更好的方法来做到这一点,没有字符串分裂,但我没有在谷歌找到任何关于它。

编辑: 是否有一些东西从框架中得到的类型为“Type”而没有做任何事情?

回答

1

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

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

请参阅this page了解更多信息。

+0

谢谢你的提示。我的问题更多是关于类型是否必须是字符串?有没有从框架中获得类型为“Type”的东西而不做任何事情? – gsharp 2010-10-08 17:40:50