Activator.CreateInstance не может найти конструктор

У меня есть класс поставщика доступа к данным, определенный как: (это только часть класса, относящаяся к моему вопросу)

public class OraDbTerminalStorage : OraDbStorage, ITerminalStorage
    {
        private OraDbTerminalStorage(string connString)
            : base(new OraDbBroker(connString))
        {
        }
    }

Когда я пытаюсь использовать Activator.CreateInstance, как это:

Type storageType = Type.GetType(System.Configuration.ConfigurationManager.AppSettings["StorageType"],true);

var storageToUse = (ITerminalStorage)Activator.CreateInstance(storageType, string.Empty);

Я получаю {"Конструктор с типом 'UZTerminal.Core.Data.OraDbTerminalStorage' не найден."} MissingMethodException.

Я хочу создать экземпляр поставщика данных с пустой строкой подключения. Я установлю это далее в коде.

Посоветуйте, пожалуйста, как избавиться от исключения.

1 ответ

Решение

Ctor является частным. По умолчанию Activator.CreateInstance сканирует только общедоступные ctors.

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