我有一个要使用 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 字段。
初始化 SqlWorkflowInstanceStore 的正确方法是什么?
InstenceStore 是 SqlWorkflowInstanceStore 的抽象类基础 ConfigManager.Instance.GetSQLConnectionString() 是单例实例