Type.GetType ("namespace.classname, assemblyname") возвращает значение null в решении с основным проектом и двумя проектами библиотеки классов - PullRequest
0 голосов
/ 09 октября 2018

Итак, у меня есть решение Visual Studio с 3 проектами:

  1. Проект BLL библиотеки классов, содержащий EmployeeBLL.cs
  2. Проект DAL библиотеки второго класса, в котором есть MemoryProvider.cs
  3. Проект 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" ?

...