如何解决使用autofac将属性注入到asp.net页面:重写PropertyInjectionModule行为以注入值/设置
| 是否可以通过autofac的PropertyInjectionModule将值/设置注入ASP.NET页?我的印象是,默认处理程序行为是搜索属性并找到与容器中的服务匹配的任何类型。 例如页面:public class MyPage: System.Web.UI.Page {
public IDataProvider DataProvider { get; set; }
public bool SomeSetting {get; set; }
public bool AnotherSetting { get; set; }
public string MySettings { get; set; }
// stuff
}
我想也许您可以指定属性:
builder.RegisterType<MyPage>()
.WithProperty(\"SomeSetting\",true)
.WithProperty(\"AnotherSetting\",false)
.WithProperty(\"MySettings\",\"do-re-mi\");
但它似乎不起作用。
我意识到我可以设置IMyPageConfig接口并以这种方式提供设置,但是这些是可选属性,可能需要设置也可以不需要设置。
解决方法
ASP.NET 2中的IoC有所限制-尽管该模块将属性注入到页面中,但它实际上不能使用Autofac的常规依赖项注入功能。
在WebForms中,人们通常采用的方法是使用Model-View-Presenter之类的东西,其中页面只是一个“哑”视图,而主持人是进行逻辑(和适当的依赖注入)的地方。
查看http://webformsmvp.com/-我认为那里有一个IoC示例和Autofac支持。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。