问题标签 [castle-windsor-3]
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.
scope - 如何为温莎城堡的特定自定义范围生活方式“开始范围”?
我创建了一个自定义范围访问器(它只返回 DefaultLifetimeScope),以便能够添加自定义范围的生活方式。然后将该组件注册为
但是,我不知道如何实际开始新的 CustomScope 范围/生命周期。该文档显示使用
但我的目标是创建/开始/启动特定范围,而不是通用LifestyleScoped()
注册。新范围应该只影响显式注册到 CustomScope 的组件;不是针对其他范围生活方式注册的通用范围组件或组件。
开始(我的自定义范围)范围/生命周期的过程是什么?
请链接到相关文档;正如我所问的,因为我无法轻易找到它。该代码使用的是温莎城堡 3.3。
背景:
我来自 Autofac,正在寻找相当于每个匹配生命周期范围的实例来在 EF 上下文上建立 UoW。“每个请求”可能有多个 UoW,并且不同的存储库可能有不同的 UoW - 我还希望将来支持嵌套。
虽然有许多文章谈论创建 UoW 模式,但它们 [都] 与 HTTP 或 WFC 请求等某些上下文相关联(错误地,IMOHO)——这不是这个问题的主题。我对如何启动自定义范围特别感兴趣,该范围通过调用图向下流动并“存在于” using 块中。
笔记:
(BoundTo()
和LifestyleBoundTo()
/ LifestyleBoundToNearest()
)生活方式对对象图起作用(并且需要更改类型),并且切换到对象图严格来说并不是这个问题的解决方案/答案。但是,如果可以为他们提供一个好的案例..
property-injection - 温莎城堡:财产注入
我实现了一个派生自ExtendedMembershipProvider的CustomMembershipProvider。IUserService是 CustomMembershipProvider 的依赖项,它将用于验证给定的凭据。这将在 Web.Config 中进行配置;
无法通过构造函数注入IUserService实现,因为CustomMembershipProvider需要无参数构造函数。
于是想到了引入属性注入。我将 IUserService 作为 CustomMembershipProvider 的公共属性。
我只为此注册编写了一个单独的安装程序
这不起作用,并且在调用 ValidateUser 时UserService始终为 NULL。
我尝试了贡献者;
并在我引导容器的地方注册贡献者。
请让我知道如何注入 CustomMembershipProvider 的 IUserService属性
castle-windsor - 温莎城堡生活方式问题
我正在实现hangFire,它是我项目中的一个作业调度库。
我面临与此链接中相同的问题
但是,替换后LifestylePerWebRequest()
我HybridPerWebRequestTransient()
仍然收到相同的错误消息:
HttpContext.Current 为空。PerWebRequestLifestyle 只能在 ASP.Net 中使用
这是我的依赖安装程序的几行:
这是温莎控制器工厂的控制器安装程序
如果需要任何其他信息,请告诉我。
castle-windsor - Castle Windsor:按惯例注册,开放仿制药
我有一个这样的界面:
我有一个像这样的基类:
我有这样的课:
没有约定,我成功注册如下:
我可以像这样成功地解析一个对象:
但是,当尝试像这样按约定注册时:
我无法像上面那样解决。是什么赋予了?
interceptor - 从 Castle Windsor 拦截器获取方法的自定义属性
我正在尝试访问应用于城堡拦截器中的方法的自定义属性,但方法 Attribute.GetCustomAttribute() 返回 null。
我怎样才能得到“我的属性”?
PS我正在使用Castle.Core 3.3.3
inversion-of-control - Castle Windsor,覆盖公约注册的组件
我刚开始第一次使用 Castle Windsor ( 3.3.0
),但我卡在了基于约定的注册上。
我想尽可能按名称约定(IDummyService
-> DummyService
)注册:
...但当然能够稍微更改一些刚刚注册的组件(更改生命周期管理、构造函数参数等)
因为我想让注册尽可能简单,所以我想避免复杂的条件。我发现的唯一解决方案很简单 - 将自定义内容移动到名称约定之上:
我现在的问题是,这是解决我注册问题的正确方法吗?我可以看到温莎城堡在这方面非常强大,并且宁愿正确解决我的任务,不幸的是没有看到太多现实世界的例子。
dependency-injection - 多个 MVC 项目中的 Sitecore 8.1 MVC 城堡 winsdor 问题
我已经使用 Sitecore 8.1 MVC、Castle Windsor 和 glass mapper v3.5 实现了一种解决方案。在这个解决方案中,我们有两个 MVC 项目,但它可能包含多个网站(Glass_Sample、Glass_Sample_1 等)
Glass_Global:这就是为什么在这个项目中实现了全局/通用功能(城堡温莎)并被其他网站(Glass_Sample)使用。我把城堡温莎的实现放在这个项目中:
并将 Glass_Global.config 文件放入 App_Config/Include 文件夹
Glass_Sample:这将是此解决方案中启动的第一个网站。我已在此项目中添加 CastleWindsorConfig.cs 文件
我在此 Glass_Sample 网站的主页布局上使用控制器渲染,但是当我浏览该网站时出现以下错误:
我错过了什么吗?
我把我的控制器,接口放在区域文件夹中这是这个错误的根本原因吗?
有什么建议吗?
附言
它现在可以工作了。实际上我创建了一个新的 Glass_Sample.config 文件并放在 Glass_Sample/App_Config/Include 文件夹中:
现在这个解决方案可能包含多个网站。我应该按照以下方法在这个解决方案中添加一个新网站:
将在此解决方案中添加一个新的 MVC 项目并添加所需的站点核心程序集
转到 IIS,添加一个新应用程序 ( GlassSampleSite1 ) 并从GlassSample网站文件夹中复制 sitecore 文件夹/dll
3.转到解决方案并右键单击GlassSampleSite1项目并将发布目标设置为新创建的实例GlassSampleSite1/Website文件夹并进行发布。
这行得通吗?
castle-windsor-3 - 在给定接口祖先的情况下,如何向 Castle Windsor 注册默认接口?
我有以下内容:
我希望能够自动让 Castle Windsor 找到所有配对IDescendantX
,DescendantX
而无需我手动指定它们。这可能吗?
我试过了:
但这没有找到默认接口。(我在用正确的术语来表达我的问题时遇到了麻烦,所以找不到关于 SO 的话题已经回答了这个问题,抱歉,如果它是重复的......)
c#-4.0 - Castle Windsor 拦截器 - 添加 HTTP 标头
我正在尝试添加一个拦截器来添加一个简单的 HTTP 标头,有没有使用 IInvocation 的好方法?
我环顾四周,看不到任何例子,或者通过 WcfPolicy。我正在尝试做的一个例子如下..
干杯,
杰米
c# - 使用 PerWebRequest 组件的瞬态组件,PerWebRequest 组件何时超出范围?
我试图理解一个有点复杂的场景。基本上,如果我的课程X
在 Castle 中注册为LifestyleTransient()
:
X
看起来像:
并Y
因此注册:
看起来像:
如果我创建它的一个X
实例Release
:
什么时候Dispose
被召唤Y
?是在网络请求结束时还是 x 的实例被释放时?有没有Dispose
被调用?!
注意:这是一个有点复杂的示例,我的实际示例要复杂得多,并且涉及 MVC ControllerFactory 和各种其他技术,但问题很简单地归结为上述问题。