Итак, у меня есть решение Visual Studio с 3 проектами:
- Проект BLL библиотеки классов, содержащий EmployeeBLL.cs
- Проект DAL библиотеки второго класса, в котором есть MemoryProvider.cs
- Проект WPF, содержащий EmployeeViewModel.cs и файл app.config
Код:
App.config - настройки приложения
add key = "EmployeeMemoryProvider" value = "EmployeeMemoryProvider.MemoryProvider, EmployeeMemoryProvider"
EmployeeViewModel.cs - конструктор:
public EmployeeViewModel()
{
var configString = ConfigurationManager.AppSettings["EmployeeMemoryProvider"];
_employeeBLL = new EmployeeBLL(configString);
var employeeList = new ObservableCollection<Employee>(_employeeBLL.GetAllEmployess());
}
}
EmployeeBLL.cs, конструктор:
public EmployeeBLL(string configString)
{
var providerType = Type.GetType(configString);
_employeeProvider = (IEmployeeProvider)Activator.CreateInstance(providerType);
}
Цель: Я хочу получить тип строки из файла App.config, которыйстрока сначала получается в EmployeeViewModel.cs как configString , затем передается в конструктор EmployeeBLL.cs и, наконец, использует Типe.GetType (configString) для получения типа configString
Проблема : providerType возвращает ноль, даже если сборкаимя и пространство имен проекта DAL: EmployeeMemoryProvider .
Может кто-нибудь пролить свет?Это потому, что я пропустил пробел после запятой в "EmployeeMemoryProvider.MemoryProvider, EmployeeMemoryProvider" ?