问题标签 [windsor-facilities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 在使用 params 数组时验证对不匹配的模拟对象的函数调用
我有以下测试:
如您所见,我通过调用设施的Init(IKernel, IConfiguration)
方法来模拟内核的真实行为,该方法又调用受保护的Init()
方法。
下面是受保护的 Init() 的样子:
我预计验证会通过,但事实并非如此。如果我验证通过测试完全调用了 Kernel.Register It.IsAny<LoggingInterceptor>()
。
我在这里不匹配什么?有没有办法让这个测试通过?
nhibernate - 使用 Castle Windsor 和 NHibernate 工具将正确的 ISessionFactory 注入 IRepository
我有三个 SQL Server 数据库,单个应用程序从中检索数据。我正在使用 NHibernate 从不同的数据库中检索数据。我设置了一些东西,以便每个数据库在自己的程序集中都有自己的存储库和类映射。在我的 castle.config 文件中,我使用 Castle NHibernate Facility 设置了数据库连接:
我所有的存储库都有一个以 ISessionFactory 作为参数的构造函数:
我有一个安装程序类,我想在其中定义各种存储库:
使用一个数据库可以正常工作。当我将第二个数据库添加到组合中时,相同的 ISessionFactory 被注入到所有存储库中。我的问题是处理这个问题的最佳方法是什么?我可以手动指定应将哪个 ISessionFactory 注入哪个 Repository<> 但我似乎找不到关于此的文档。最好的方法是,如果我可以这样说:对于程序集 DAL.DatabaseOne 中的所有类映射,始终注入对应于 databaseone.factory 的 ISessionFactory;并且对于程序集 DAL.DatabaseTwo 中的所有类映射,始终注入对应于 databasetwo.factory 的 ISessionFactory。
想法或建议?
logging - Castle Windsor 登录控制台时设置日志级别
我是 Castle Windsor 的新手,正在努力设置 ConsoleLogger 的初始日志级别。该文档为log4net提供了一些提示,但对登录到控制台保持沉默。
我的代码如下所示:
任何提示我如何将设施的默认日志级别设置为例如LoggerLevel.Warn
?
干杯
castle-windsor - Castle Windsor:使用拦截器创建的组件事件
我已经为温莎城堡创建了一个自动配置实例的工具,除了带有拦截器的类型之外,它工作得很好!在这种情况下,不会触发 ComponentCreated 事件并且我无法配置我的实例,如何拦截代理类的创建?这是我的设施代码:
解决方案
ComponentCreated 事件参数“s”是一个 ComponentModel,因此它在 Implementation 属性中拥有未经代理的类型!我的固定代码如下所示:
castle-windsor - 我对 TypedFactory Windsor 实现有什么控制?
我的同事在我们的项目中设置了一个 Windsor TypedFactoryFacility。
我是 Windsor 的新手,不明白它是如何实现我们注册为工厂的 IServiceFactory 接口中的方法的。当我看到一个接受类型参数 T 并返回 T 的 Create 方法时,我认为它可能在后台调用了容器的 Resolve 方法。
我需要一个以 Type 作为参数并返回一个对象的 Create 重载。由于容器的 Resolve 方法具有这两种风格:
我认为添加 Create 的重载会起作用。相反,它似乎试图解析 System.Object 而不是我传入的类型。
有没有办法让 Windsor 以我想要的方式实现我的 Create 方法?我已经用反射器戳了一下,但无法弄清楚。
这是注册:
和界面本身:
locking - 在 Windsor 中使用的 Log4net 带有锁定模型
从 Windsor 日志记录工具和 fileappender 使用 log4net 时,是否需要使用锁定模型?还是这个问题由温莎自己解决?谢谢。
castle-windsor - 具有自定义 Log4Net 配置的 Windsor 测井设施
通过以下页面,我有 Windsor 日志记录工具在我的项目上工作:http: //docs.castleproject.org/Windsor.Logging-Facility.ashx,然后使用 log4net.config。
但是,我对不使用 log4net.config 感兴趣,而是使用基于代码的附加程序设置,如本文所述:如何从头开始以编程方式配置 log4net(无配置)
日志记录工具可以做到这一点吗?执行此操作的最佳方法是什么?
wcf - 向 Castle Windsor 注册 wcf 服务
我有一个非常简单的服务,在不使用 Castle 时可以正常工作(这表明其他代码是正确的)。我将我的 svc 文件更改为以下内容:
并使用 xml 注册服务,如下所示:
但我收到以下错误:
知道为什么它没有注册吗??
- - 更新 - -
我在温莎配置中有这个:
并且 ReportingWebService 在另一个程序集中被隐含。
c# - 类型化工厂默默地丢弃无法映射到构造函数的参数?
问题
如果在创建函数中指定了无法映射到构造函数的参数,类型化工厂是否应该抛出异常?例如
我们发现部分错误是由类型化工厂静默调用默认构造函数引起的,而不是当它在 Foo 上找不到接受字符串的构造函数时抛出异常。Foo 的构造函数已更改,但在类型化工厂中创建它的方法尚未更新。
部分解决方案?
我们做了一些实验,找到了一个潜在的解决方案:
这会是一个合适的解决方法吗?
nuget - 从 NuGet 安装 Castle.Transactions 不会生成 DLL
几天前,我Castle.Facilities.AutoTx
从 NuGet 安装了依赖于Castle.Transactions
. 当我运行我的应用程序时,我FileNotFoundException
试图从 Castle.Transactions 文件夹中加载一个 DLL。
这两个软件包最近都已更新(6 月 27 日),似乎更新导致了这个问题。有其他人对该公告的回复说他们有同样的问题,他们创建了一个拉取请求来解决尚未被事物外观接受的问题。
我试图返回并使用此Stack Overflow 问题中的命令从 Nuget 安装较早版本的 Castle.Facilities.AutoTx,但我遇到了此处详述的问题,即 Rx-Core 包已重命名,因此依赖项无法不满意。
我已经给 Henrik Feldt 发了电子邮件,他发布了 3.1 公告,并且还编写了 Castle.Transactions 包,但我没有收到回复。我真的很想让 AutoTx 工具在我的应用程序中工作,你能建议我如何实现吗?