asp.net-mvc – 使用Castle Windsor在ASP.NET MVC中实现多租户的
我有一个服务有两个不同的实现,我想注入到控制器构造函数,取决于一个标准(目前标准是一个存储在会话中的简单值).
这是我现在得到的…… 服务界面: public interface IService { string GetSampleText(); } 实施#1: public class FirstService : IService { string GetSampleText() { return "First Service"; } } 实施#2: public class SecondService : IService { string GetSampleText() { return "Second Service"; } } 在Windsor安装程序类中注册: container.Register(AllTypes .FromAssemblyInDirectory(new AssemblyFilter(HttpRuntime.BinDirectory)) .BasedOn<IService>() .WithService.FromInterface() .Configure(c => c.LifeStyle.Transient)); container.Kernel.AddHandlerSelector(new ServiceHandlerSelector()); 我已经实现了一个IHandlerSelector: public class ServiceHandlerSelector : IHandlerSelector { ... } 在这个IHandlerSelector实现的HasOpinionAbout方法中,我可以决定在SelectHandler方法中选择哪个处理程序(取决于session的值). 然后构造函数注入在控制器上正常工作: public MyController(IService service) { ... } 所以我得到了一个有效的解决方案,但我不确定这是否是最好的方法. 意见?建议? 非常感谢. 解决方法
你在处理程序选择器的正确轨道上.以下是一些关于将它们用于多租户的好文章,您可以将它们用作参考:
> http://ayende.com/Blog/archive/2008/10/05/windsor-ihandlerselector.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 发布管理 – 发布给用户的一小部分 – 它对于面
- asp.net – 跨虚拟目录的表单身份验证
- asp.net-mvc – ApplicationDbContext – 它在项目中的位置
- ASP.NET MVC验证属性和Jquery
- asp.net-mvc-3 – ASP.NET MVC 3: – 使用数据库而不是资源
- asp.net – 错误:找不到此项目类型所基于的应用程序
- ASP.NET 5(MVC6)EF7外键可能会导致循环
- Asp.NET cookies返回null
- asp.net – 如何将razor变量作为参数传递给jquery函数
- ASP.NET MVC 3中的c# – @ Html.ActionLink
- 具有嵌套列表的ASP.NET MVC DefaultModelBinder
- asp.net-mvc – 用ASP.NET MVC实现MEF?
- 如何在kendo UI MVC菜单中添加字体真棒图标?
- asp.net-mvc-5 – 使用ASP.NET标识在两个项目中重
- powershell – 如何检查asp.net mvc 3是否已安装
- asp.net-mvc – 从ASP MVC 3 Preview 1升级到bet
- asp.net-mvc – 更改MVC4上的基本视图类型
- asp.net-mvc-3 – MVC3重定向到ajax调用后的动作
- asp.net – 使用HtmlTextWriter渲染服务器控件?
- datetime – 如何指定模型绑定的日期格式?