关闭
当前搜索:

Autofac官方文档(二十一)【应用集成之OWIN】

OWIN全称Open Web Interface for .NET(.NET的开放式Web接口),是一种更简单的模型,用于(在不将应用程序绑定到Web服务器的情况下)编写基于Web的应用程序。为此,使用“中间件”的概念来创建请求所经过的管道。由于OWIN处理应用程序管道(检测请求何时开始/结束等)的方式的差异,将Autofac集成到OWIN应用程序中与将其集成到更多“标准”ASP.NET应用程序的方...
阅读(1) 评论(0)

Autofac官方文档(二十)【应用集成】

ASP.NET OWIN Quick Start Dependency Injection in Middleware Controlling Middleware Order Example MVC Quick Start...
阅读(14) 评论(0)

Autofac官方文档(十九)【模块】

介绍IoC使用组件作为应用程序的基本构建块。提供对组件的构造函数参数和属性的访问通常被用作实现部署时配置的手段。这通常是一个可疑的做法,原因如下: 构造函数可以改变:对构造函数签名或组件属性的更改可能会中断部署的App.config文件 - 这些问题在开发过程中可能会出现很晚。 JSON/XML难以维护:大量组件的配置文件可能难以维护。 “代码”开始在配置中显示:暴露类的属性和构造函数参数是对应用程...
阅读(32) 评论(0)

Autofac官方文档(十八)【JSON/XML 配置】

大多数IoC容器提供编程接口以及基于JSON/XML文件的配置支持,Autofac也不例外。Autofac鼓励通过ContainerBuilder类进行编程配置。使用编程接口是容器设计的核心。 如果在编译时无法选择或配置具体类,则建议使用JSON或XML。在深入研究JSON/XML配置之前,一定要阅读模块 - 这解释了如何处理比基本的JSON/XML组件注册所允许的更复杂的场景。 JSON/XML中...
阅读(10) 评论(0)

Autofac官方文档(十七)【配置】

JSON/XML Configuration Configuring With Microsoft Configuration (4.0+) Quick Start Default Assembly Components Modules Type Names...
阅读(13) 评论(0)

Autofac官方文档(十六)【在启动时运行代码】

Autofac提供了在构建容器时通知组件或自动激活组件的功能。有三种自动激活机制可用: - 可启动组件 - 自动激活组件 - 容器构建回调在所有情况下,当容器建成时,组件将被激活。可启动的组件一个可启动的组件是容器在最初构建时被容器激活的组件,并且有一个特定的方法被调用来引导组件上的一个动作。关键是要实现Autofac.IStartable接口。在构建容器时,组件将被激活,并调用IStartable...
阅读(19) 评论(0)

Autofac官方文档(十五)【生命周期事件】

Autofac公开了在实例生命周期的不同阶段可能被挂钩的事件。 这些在组件注册期间被订阅(或者通过附加到IComponentRegistration接口。) OnActivating OnActivated OnReleaseOnActivatingOnActivating事件在使用组件之前引发。 在这里你可以: 将实例切换为另一个或将其包装在代理中 做属性注入或方法注入 执行...
阅读(26) 评论(0)

Autofac官方文档(十四)【销毁】

在工作单元内获得的资源(数据库连接,事务,认证会话,文件句柄等)应在工作完成时销毁。 .NET提供了IDisposable接口来帮助销毁这个更确定的概念。一些IoC容器需要通过像ReleaseInstance()这样的方法明确地告诉销毁特定的实例。 这使得很难保证使用正确的销毁语义。 从不可销毁部件切换到可销毁部件可能意味着修改客户端代码。 客户端代码在使用共享实例时可能会忽略销毁,但切换到非共享实...
阅读(19) 评论(0)

Autofac官方文档(十三)【捕获依赖】

捕获依赖当一个要生存很短时间的组件被一个长期存在的组件持有时,就会发生“captive dependency”。 Mark Seemann的这篇博客文章在解释这个概念方面做得很好。Autofac不一定会阻止你创建捕获依赖关系。由于捕获的设置方式,您可能会发现解决方案异常的时候,但您并不总是如此。停止捕获依赖是开发者的责任。一般规则避免捕获依赖的一般规则:消费组件的生命周期应该小于或等于所消费的服务的...
阅读(56) 评论(0)

Autofac官方文档(十二)【实例范围】

实例范围决定了如何在同一服务的请求之间共享实例。 请注意,您应该熟悉生命周期范围的概念,以更好地理解这里发生的事情。当对一个服务进行请求时,Autofac可以返回一个实例(单个实例作用域),一个新实例(每个依赖作用域)或单个实例带某种上下文。 一个线程或一个HTTP请求(每个生命周期范围)。这适用于从显式Resolve()调用返回的实例以及容器内部创建的实例,以满足另一个组件的依赖关系。 注意...
阅读(63) 评论(0)

Autofac官方文档(十一)【使用生命周期范围】

创建一个新的生命周期范围您可以通过在任何现有生命周期作用域上从根容器开始调用BeginLifetimeScope()方法来创建生命周期作用域。生命周期作用域是可销毁的,他们跟踪组件的处置,所以确保你总是调用“Dispose()”或者把它们包装在“using”语句中。using(var scope = container.BeginLifetimeScope()) { //从作为根容器子项的作用域...
阅读(32) 评论(0)

Autofac官方文档(十)【控制作用域和生命周期】

Nick Blumhardt的Autofac终身入门书是开始学习Autofac生命周期的好地方。然而,还有很多需要消化的东西,还有很多混杂的概念,所以我们将在这里补充这篇文章。您可能会从注册主题中想起将组件添加到实现服务的容器。然后您最终解析服务并使用这些服务实例来完成您的工作。服务的生命周期是服务实例在您的应用程序中生存的时间 - 从原始实例到处置。例如,如果你“新建”了一个实现了IDisposa...
阅读(32) 评论(0)

Autofac官方文档(九)【解析服务之隐式关系类型】

Autofac支持隐式自动解析特定类型,以支持组件和服务之间的特殊关系。要充分利用这些关系,只需简单地注册组件即可,但是在使用组件中更改构造函数参数或在Resolve()调用中解析类型,以便使用指定的关系类型。例如,当Autofac注入IEnumerable类型的构造函数参数时,它将不会查找提供IEnumerable 的组件。相反,容器会找到ITask的所有实现并注入所有...
阅读(32) 评论(0)

Autofac官方文档(八)【解析服务之传递参数来解析】

当需要解析服务时,您可能会发现需要将参数传递给解析。(如果您在注册时知道这些值,则可以在注册时提供这些值。)Resolve()方法使用可变长度参数列表接受注册时可用的相同参数类型。或者,委托工厂和Func 隐式关系类型也允许在解析过程中传递参数。 可用的参数类型Autofac提供了几种不同的参数匹配策略: NamedParameter - 按名称匹配目标参数 TypedParameter - 按类...
阅读(104) 评论(0)

Autofac官方文档(七)【解析服务】

在将组件注册到适当的服务之后,您可以从构建的容器和子生命周期范围解析服务。 您可以使用Resolve()方法执行此操作:var builder = new ContainerBuilder(); builder.RegisterType().As(); var container = builder.Build();using(var scope = c...
阅读(60) 评论(0)

Autofac官方文档(六)【注册组件之程序集扫描】

Autofac可以使用约定来查找和注册程序集中的组件。 您可以扫描并注册各种类型,也可以专门扫描Autofac模块。扫描类型否则称为惯例驱动的注册或扫描,Autofac可以根据用户指定的规则从程序集中注册一组类型:var dataAccess = Assembly.GetExecutingAssembly();builder.RegisterAssemblyTypes(dataAccess)...
阅读(23) 评论(0)

Autofac官方文档(五)【注册组件之属性和方法注入】

虽然构造函数参数注入是将值传递给正在构造的组件的首选方法,但您也可以使用属性或方法注入来提供值。属性注入使用可写属性而不是构造函数参数来执行注入。方法注入通过调用一个方法来设置依赖关系。属性注入如果组件是一个lambda表达式组件,请使用对象初始值设定项:builder.Register(c => new A { B = c.Resolve() });要支持循环依赖性,请使用激活的事件处理程序...
阅读(33) 评论(0)

Autofac官方文档(四)【注册组件之将参数传递给注册者】

在注册组件时,您可以提供一组参数,这些参数可以在解决基于该组件的服务时使用。(如果您希望在解析时提供参数,则可以改为执行此操作。)可用的参数类型Autofac提供了几种不同的参数匹配策略: NamedParameter - 按名称匹配目标参数 TypedParameter - 按类型匹配目标参数(需要完全类型匹配) ResolvedParameter - 灵活的参数匹配 NamedParameter...
阅读(103) 评论(0)

Autofac官方文档(三)【注册组件之注册概念】

通过创建一个ContainerBuilder并通知构建器哪些组件暴露哪些服务,您可以使用Autofac注册组件。组件可以通过反射(通过注册一个特定的.NET类型或打开通用)来创建; 通过提供一个现成的实例(一个你创建的对象的实例); 或者通过lambda表达式(一个执行实例化对象的匿名函数)。 ContainerBuilder有一系列的Register()方法,允许你设置它们。每个组件都暴露一个或多...
阅读(36) 评论(0)

Autofac官方文档(二)【新版本】

Autofac和集成软件包的发行说明 Core components Autofac Autofac.Configuration Integration librariesASP.NETWeb Forms MVC Web API SignalR RIA/Domain Services OWIN OWIN Core OWIN / Web API OWIN / MVC WCF MEF Common...
阅读(87) 评论(0)
24条 共2页1 2 下一页 尾页
    个人资料
    • 访问:1075304次
    • 积分:16029
    • 等级:
    • 排名:第755名
    • 原创:313篇
    • 转载:770篇
    • 译文:120篇
    • 评论:274条
    博客专栏
    文章分类
    打赏
    如果你觉得我的文章对您有用,请随意打赏。 微信 支付宝