Чтение из атрибута 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);
см. эту страницу для получения дополнительной информации.