asp.net-mvc-3 – StructureMap初学者|物业注入
发布时间:2020-05-25 08:18:28 所属栏目:asp.Net 来源:互联网
导读:这个问题的一部分已经在这里被问到: structuremap Property Injection但答案从未给出过. 使用StructureMap,可以进行Property Injection class SomeController : Controller{ public IService Service { get; set; }} 注射得当吗?我是一个 Structure
|
这个问题的一部分已经在这里被问到: structuremap Property Injection但答案从未给出过. 使用StructureMap,可以进行Property Injection class SomeController : Controller
{
public IService Service
{
get;
set;
}
}
注射得当吗?我是一个 解决方法StructureMap支持 setter/property injection.因此您可以执行以下操作:public class SomeController : Controller
{
[SetterProperty]
public IService Service { get; set; }
}
然后: ObjectFactory.Initialize(x =>
{
x.For<IService>()
.Use<ServiceImpl>();
});
或者如果您不喜欢使用StructureMap特定属性来混淆控制器的想法,您可以像这样配置它: ObjectFactory.Initialize(x =>
{
x.For<IService>()
.Use<ServiceImpl>();
x.ForConcreteType<SomeController>()
.Configure
.Setter<IService>(c => c.Service)
.IsTheDefault();
});
另请注意,属性注入适用于此属性的存在对于控制器的正确运行不是强制性的情况.例如,想一下记录器.如果控制器的消费者没有将任何记录器的特定实现注入到属性中,则控制器仍然可以工作,只是它不会记录.在您的情况下,您正在使用服务,如果您的控制器操作依赖于此服务,我将使用构造函数注入.所以你应该问自己的问题是:如果这个属性为null,当我调用它的一些动作时,我的控制器会崩溃吗?如果这个问题的答案是肯定的,那么我会建议构造函数注入.此外,当您使用构造函数注入时,强制此控制器的使用者指定实现,因为他无法在构造函数中传递适当的服务而无法获取控制器的实例. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC ViewModel方法 – 是
- asp.net-mvc – Json返回时如何读取modelstate错
- asp.net – 身份cookie在一段时间后会丢失自定义
- asp.net – 当主机名中有下划线时,表单身份验证无
- asp.net-mvc – ASP.NET MVC从预览5升级到Beta版
- asp.net – 如何将网页添加到gridview
- ASP.NET Core Web API模板中没有单独的用户帐户a
- ASP.Net将文件下载到客户端浏览器
- asp.net-mvc – 什么是AsyncManager.Outstanding
- asp.net – 如何在Visual Studio中生成Web服务的
热点阅读
