Чтение из атрибута 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);

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

Другие вопросы по тегам