2010-10-08 2 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); 

Я уверен, что есть лучший способ сделать это, без разделения строк, но я ничего не нашел об этом в google.

Редактировать: Есть ли какая-нибудь конструкция из фреймворка, которая получает тип типа «Тип», ничего не делая?

ответ

1

Вы можете использовать метод GetType (string typename). Например, как это:

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

см this page для получения дополнительной информации.

+0

Спасибо за подсказку. Мои вопросы были больше о том, должен ли тип быть строкой? Есть ли какая-то сборка из фреймворка, которая получает тип типа «Тип», ничего не делая? – gsharp

Смежные вопросы