nir*_*irw 9 entity-framework dependency-injection asp.net-web-api
我正在尝试在ASP.NET Web API中实现被动属性.我正在实现的过滤器依赖于存储库,存储库本身依赖于自定义DbContext.在帖子中,它表示您可以使用DI容器解析组件,但也应该从Application_Start调用代码.我不确定如何实现这一点,同时利用DI容器的生命周期管理功能(以便每个请求使用一个新的DbContext).注入抽象工厂会是一个很好的解决方案吗?还是有一些我想念的更简单的东西.
您可以通过在Filter和Repository之间滑动Decoraptor来解决此问题.
不太了解您的代码,您应该能够使用Abstract Factory定义Decoraptorepository:
public class Decoraptorepository : IRepository
{
private readonly IFactory<IRepository> factory;
public Decoraptorepository(IFactory<IRepository> factory)
{
this.factory = factory;
}
// Just guessing IRepository's member(s) here...
public void Save(Foo foo)
{
this.factory.Create().Save(foo);
}
// other members...
}
Run Code Online (Sandbox Code Playgroud)
这使得Filter可以保持Singleton,而实际的Repository以Transient方式创建.
如果您还需要处理对象,请参阅后续文章,了解如何从Decoraptor中停用Transient对象.
| 归档时间: |
|
| 查看次数: |
712 次 |
| 最近记录: |