加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – Autofac和IDisposable界面

发布时间:2020-12-15 19:31:27 所属栏目:asp.Net 来源:网络整理
导读:假设我有以下接口和类: public interface IFooRepo : IDisposable { //...}public FooRepo : IFooRepo { //Methods here //Properly implement the IDisposbale.Dispose() here} 我在应用程序中使用Autofac作为IoC容器,如果我注册如下,我可以确定它会妥善处
假设我有以下接口和类:
public interface IFooRepo : IDisposable { 

    //...
}

public FooRepo : IFooRepo { 

    //Methods here

    //Properly implement the IDisposbale.Dispose() here
}

我在应用程序中使用Autofac作为IoC容器,如果我注册如下,我可以确定它会妥善处理吗?

private static IContainer RegisterServices(ContainerBuilder builder) { 

    builder.RegisterType<FooService>().As<IFooService>();

    return
        builder.Build();
}

或者我应该采取进一步的步骤,取决于我正在使用的应用程序类型. (在这种情况下,我使用ASP.NET MVC,但我正在考虑在WCF Web API项目和类库中使用autofac)

解决方法

自动填充调用在其父生命周期范围结束之后,为实现IDisposable的所有组件实例进行处理.你不需要在这里做任何额外的工作.

要熟悉Autofac提供的用于管理生命周期范围的选项,请遵循@ dotnetstep的链接.

管理生命周期范围是一种取决于您的具体应用程序的策略,不仅仅是其类型(MVC或简单ASP.NET或其他).由Autofac的创始人This article about lifetimes给出了这个话题的深入解释.

对于MVC3项目,我建议您遵循MVC3 integration guidelines.这将使所有单独的HTTP请求都为其创建单独的生命周期范围. HTTP请求完成后,Autofac将完成关联的生命周期范围,并处理在该范围内创建的所有可用资源.

通过遵循corresponding guidelines,对ASP.NET WebForms项目可以实现相同的效果

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读