大佬教程收集整理的这篇文章主要介绍了asp.net-mvc – 我的剃刀视图的自定义基页类型,如何使用城堡windsor自动装配属性?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
namespace ASDF.Mvc.ViewEngines.Razor { public abstract class WebViewPage<TModel> : System.Web.Mvc.WebViewPage<TModel> { public ISomeHelper SomeHelper { get; set; } } }
我的观点/ web.config
<system.web.webPages.razor> <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" /> <pages pageBaseType="ASDF.Mvc.ViewEngines.Razor.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor>
我怎样才能使用Castle连接SomeHelper.
现在回来是null,我已经连接了ISomeHelper,并且我的控制器/存储库/服务类的工作正常.
我猜这个WebViewPage是在我的容器无法访问的地方调用的(比如在控制器级别).
我如何让它工作?
所以我们目前只能使用属性注入.
因此,一种可能性是使用自定义IDependencyResolver.不幸的是IDependencyResolver doesn’t play nice with Castle Windsor.例如,与Ninject相比,本来就是小菜一碟.您所要做的就是使用[Inject]属性修饰SomeHelper属性:
[Inject] public ISomeHelper SomeHelper { get; set; }
并且它将由Ninject自动连接,因为它使用自定义IDependencyResolver.我担心温莎你必须手动这样做.因此,您可以在Global.asax中公开您的容器,然后:
public abstract class WebViewPage<TModel> : System.Web.Mvc.WebViewPage<TModel> { protected WebViewPage() { SomeHelper = MvcApplication.WindsorContainer.Resolve<ISomeHelper>(); } public ISomeHelper SomeHelper { get; set; } }
我知道这很糟糕,但我担心这是严酷的现实.或者转换到Ninject?它在ASP.NET MVC 3及其IDependencyResolver中发挥得非常好.
以上是大佬教程为你收集整理的asp.net-mvc – 我的剃刀视图的自定义基页类型,如何使用城堡windsor自动装配属性?全部内容,希望文章能够帮你解决asp.net-mvc – 我的剃刀视图的自定义基页类型,如何使用城堡windsor自动装配属性?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。