1

私は次のように定義されたデータアクセスプロバイダークラスを持っています:(これは私の質問に関連するクラスの一部にすぎません)

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が発生します。

空の接続文字列を使用してデータプロバイダーをインスタンス化したい。コードでさらに設定します。

例外を取り除く方法についてアドバイスしてください。

4

1 に答える 1

2

ctorはプライベートです。デフォルトでは、Activator.CreateInstanceはパブリックctorのみをスキャンします。

于 2011-04-17T16:58:18.357 に答える