0

CastleWindsor を使用して作成したい SqlWorkflowInstanceStore オブジェクトがあります。SqlWorkflowInstanceStore は、接続文字列のコンストラクター パラメーターを受け取ります。接続文字列は app.config にあります。

CastleWindsor を使用しない場合、これは機能します。

InstanceStore persistanceStoreX = new SqlWorkflowInstanceStore(ConfigManager.Instance.GetSQLConnectionString());

私はCastleWindsorでこれらのスニペットを試しました:

WindsorContainer.Register(Component.For<InstanceStore>().ImplementedBy<SqlWorkflowInstanceStore>().DependsOn(Property.ForKey("InstanceStore").Eq(ConfigManager.Instance.GetSQLConnectionString())));

var connString = ConfigManager.Instance.GetSQLConnectionString();
WindsorContainer.Register(Component.For<InstanceStore>().ImplementedBy<SqlWorkflowInstanceStore>().DependsOn(new { InstanceStore = connString }));

これで解決した場合:

_persistanceStore = _iodManager.WindsorContainer.Resolve<InstanceStore>();

有効なコンテナを取得しましたが、ConnectionString フィールドが null です。

SqlWorkflowInstanceStore を初期化する正しい方法は何ですか?

InstenceStore は SqlWorkflowInstanceStore の抽象クラス ベースです ConfigManager.Instance.GetSQLConnectionString() はシングルトン インスタンスです

4

1 に答える 1

1

このページを見ると、 ctor パラメータのように見えるSqlWorkflowInstanceStoreのでconnectionString、登録コードは次のようになるはずです。

WindsorContainer.Register(Component.For<InstanceStore>().ImplementedBy<SqlWorkflowInstanceStore>().DependsOn(Property.ForKey("connectionString").Eq(ConfigManager.Instance.GetSQLConnectionString())));
于 2012-10-25T00:45:35.410 に答える