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.