Activator.CreateInstance无法找到构造函数

时间:2011-04-17 16:56:20

标签: c# activator

我有一个数据访问提供程序类,定义为:(这只是与我的问题相关的类的一部分)

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 个答案:

答案 0 :(得分:2)

ctor是私人的。默认情况下,Activator.CreateInstance仅扫描公共ctors。