首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Autofac相当于Ninject的WhenInjectedInto()

好的,我来尝试回答这个问题。

首先,我们需要了解 Autofac 和 Ninject 这两个框架。

Autofac 是一个 C# 的开源依赖注入框架,它可以帮助开发者更轻松地实现依赖注入,从而提高代码的可测试性和可维护性。Autofac 提供了一个简单易用的 API,可以轻松地注册和解析依赖。

Ninject 是一个轻量级的依赖注入框架,它也可以帮助开发者更轻松地实现依赖注入。Ninject 提供了一个简单易用的 API,可以轻松地注册和解析依赖。

在 Ninject 中,WhenInjectedInto() 方法可以用于指定依赖注入的范围,即在哪些类型中注入哪些依赖。

现在,我们来看看 Autofac 中相当于 WhenInjectedInto() 的方法。

在 Autofac 中,可以使用 WithProperty() 方法来指定依赖注入的范围。WithProperty() 方法可以接受一个 Lambda 表达式,用于指定依赖注入的条件。

例如,如果我们想要在注入 IService 依赖时,只在 MyClass 类型中注入 MyService 实现,可以使用以下代码:

代码语言:csharp
复制
builder.RegisterType<MyService>().As<IService>().WithProperty("Instance", new MyClass());

这样,在解析 IService 依赖时,Autofac 会根据 WithProperty() 方法中的条件,判断是否需要注入 MyService 实现。

总结一下,Autofac 中相当于 Ninject 的 WhenInjectedInto() 方法的是 WithProperty() 方法,它可以用于指定依赖注入的范围。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AI介绍依赖注入在Blazor项目中使用的方法。

写一篇介绍依赖注入在Blazor项目中使用的方法。 当我们在Blazor项目中使用依赖注入(DI)时,我们可以使用.NET Core自带的DI容器或第三方DI容器,如Autofac和Ninject。...这些容器可以帮助我们管理和注入应用程序中的依赖项,使代码更加可维护和可测试。 首先,我们需要在项目中安装所需的DI容器。...例如,如果我们要使用Autofac,我们可以使用NuGet包管理器安装Autofac.Extensions.DependencyInjection包。...在ConfigureServices方法中,我们可以添加依赖项并指定它们的生命周期。...例如,以下代码片段将注册一个名为MyService的服务,并将其生命周期设置为每个请求: services.AddScoped(); 接下来,在需要使用服务的组件中

27320

ASP.NET Core 整合Autofac和Castle实现自动AOP拦截

前言: 除了ASP.NETCore自带的IOC容器外,我们还可以使用其他成熟的DI框架,如Autofac,StructureMap等(笔者只用过Unity,Ninject和Castle)。...": "1.0.0", "Autofac": "4.1.1", "Autofac.Extensions.DependencyInjection": "4.0.0", 接着我们也修改Startup文件中的...)); 2.2 引用程序集 显然些程序集还没有Core的对应版本的Autofac.Extras.DynamicProxy,既然说好要整合,就修改一下源代码吧。...Autofac.Extras.DynamicProxy之所以不能支持Core,主要是因为在源码中没有使用新的反射API,GetTypeInfo或使用了一些Remoting的API导致的。...(2).对应ASP.NET Core提及的不同的生命周期,Autofac也定义了对应的扩展方法,如InstancePerLifetimeScope等,默认为Transient模式,包括EntityFramwork

1.3K40
  • 通过反射实现IOC功能

    这段时间园子里有不少介绍IOC组件的文章,由于自己也一直在学习IOC的各种组件,及IOC的思想,常见的IOC组件很多:AutoFac、Ninject、Utity包括.NET自带的MEF等。...由于今天周六,女朋友去加班了(也是一枚标准的程序媛,做java开发),闲来没事,自己就想着根据反射可以自己写一个简易的IOC组件。IOC组件说白了就是根据反射实例化对应的接口。...Common 通过配置文件实例化对应的接口 IBLL定义的接口 BLL实现接口 2、引用 IOCTest项目引用IBLL、Common项目,不能引用BLL项目,这样就使IOCTest项目只依赖接口。...3、下面我们来看具体的实现 (1)在IBLL层的IHelloWord.cs类中我们定义一个接口,代码如下 using System; using System.Collections.Generic;...到此结束,准备收拾收拾下楼去吃饭,下午去国家图书馆看书,后续把AutoFac、Ninject、Utity总结一下,感觉Ninject比较好用,有兴趣的同学可以研究一下。

    63410

    依赖注入容器Autofac

    这些容器的简要介绍可以参看: IoC in .NET part 1: Autofac IoC in .NET part2: StructureMap IoC in .NET part 3: Ninject...,Autofac和其他容器的不同之处是它和C#语言的结合非常紧密,在使用过程中对你的应用的侵入性几乎为零,更容易与第三方的组件集成。...Autofac的主要特性如下: 灵活的组件实例化:Autofac支持自动装配,给定的组件类型Autofac自动选择使用构造函数注入或者属性注入,Autofac还可以基于lambda表达式创建实例,这使得容器非常灵活...通过嵌套的容器实例和对象的作用域使得资源的可视化。 Autofac的设计上非常务实,这方面更多是为我们这些容器的使用者考虑: 组件侵入性为零:组件不需要去引用Autofac。...Autofac之旅吧,可以给你不一样的思路。

    1.2K90

    Autofac在.NET Core 中的使用

    前言 Autofac 是一款.NET IoC 容器 . 它管理类之间的依赖关系, 从而使应用在规模及复杂性增长的情况下依然可以轻易地修改 。....NET CORE 中也内置了依赖注入,但是有些情况下需要用到Autofac去进行依赖注入,Autofac支持的所有注入方式以外,还支持属性注入和方法注入。...接下来我们通过示例来简单了解Autofac的使用 示例 新建两个.NET CORE 项目,一个WEB层,一个服务层 ? 服务层中添加几个测试服务和模块文件 ? 服务代码都如图所示 ?...NetCoreAutofacServiceModule 类继承Autofac.Module,并重写Autofac管道中的Load方法,如下图多种方式注入服务。 ?...接下来就是在WEB层配置Autofac,这里需要注意的是.Net Core2+ 和 .Net Core3+ 的配置方法稍有不同 .NET CORE 2+ 在NET Core 2.1时候,AutoFac

    2K30

    造轮子之自动依赖注入

    三方依赖注入 ASP.NET Core也支持使用第三方依赖注入容器,例如Autofac、Ninject、Unity等。这些容器提供了更多的功能和灵活性,可以满足更复杂的依赖注入需求。...既然我们需要做一个比较灵活的依赖注入,那么就选择三方的组件更合适,这里我们选用autofac。 生命周期接口 依赖注入对应有不同的生命周期,我们按照官方三种生命周期创建三个生命周期接口。...集成Autofac 安装Autofac的NUGET包。...在后续开发中,我们所有需要注册依赖注入的服务只需要按需继承三个生命周期的接口即可。 可能有人会问使用了Autofac之后是否必须所有的服务都必须用Autofac的方式去注册服务,不能使用原生的方式。...这点大可不必担心,使用autofac后,我们依然可以使用原生的AddScope等方法手动去注入我们的服务,同样是生效的。

    30520

    Autofac创建实例的方法总结

    1、InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例。这也是默认的创建实例的方式。...2、InstancePerLifetimeScope 在一个生命周期域中,每一个依赖或调用创建一个单一的共享的实例,且每一个不同的生命周期域,实例是唯一的,不共享的。...3、InstancePerMatchingLifetimeScope 在一个做标识的生命周期域中,每一个依赖或调用创建一个单一的共享的实例。打了标识了的生命周期域中的子标识域中可以共享父级域中的实例。...4、InstancePerOwned 在一个生命周期域中所拥有的实例创建的生命周期中,每一个依赖组件或调用Resolve()方法创建一个单一的共享的实例,并且子生命周期域共享父生命周期域中的实例。...若在继承层级中没有发现合适的拥有子实例的生命周期域,则抛出异常:DependencyResolutionException。

    1K20

    ASP.NET Core依赖注入解读&使用Autofac替代实现

    标签: 依赖注入 Autofac ASPNETCore 1. 前言 关于IoC模式(控制反转)和DI技术(依赖注入),我们已经见过很多的探讨,这里就不再赘述了。...Autofac实现和自定义实现扩展方法 除了ASP.NETCore自带的IOC容器外,我们还可以使用其他成熟的DI框架,如Autofac,StructureMap等(笔者只用过Unity,Ninject...3.1 安装Autofac 首先在project.json的dependency节点中加入Autofac.Extensions.DependencyInjection引用,目前最新版本是4.0.0-rc3...: 创建Autofac容器时不要忘了将ConfigureServices的返回值修改为IServiceProvider 对应ASP.NET Core提及的不同的生命周期,Autofac也定义了对应的扩展方法...ASP.NET Core自带IOC容器配合使用 Autofac Core版本和传统的ASP.NET MVC项目版本的区别 4.

    1.5K80

    .Net Core 学习之路-AutoFac的使用

    本文不介绍IoC和DI的概念,如果你对Ioc之前没有了解的话,建议先去搜索一下相关的资料 这篇文章将简单介绍一下AutoFac的基本使用以及在asp .net core中的应用 Autofac介绍 组件的三种注册方式...()) { var reader = scope.Resolve(); } 如果不止一个组件暴露了相同的服务, Autofac将使用最后注册的组件作为服务的提供方。...在asp .net core中的使用 在.net core 中使用autofac还是比较简单的,相比于传统的asp.net web 项目,省去了很多步骤 引入nuget程序包: Autofac Autofac.Extensions.DependencyInjection...函数,这个函数需要传入一个TModule的泛型,称之为autofac的模块 模块的功能就是把所有相关的注册配置都放在一个类中,使代码更易于维护和配置,下面展示了DefaultModuleRegister...autofac中了,所以现在可以在任何位置通过AutoFac解析出来.net core默认注入的服务(IConfiguration,IHostingEnvironment等)了 正常项目使用中,我们应该将

    1.6K70

    月球相当于北京的几环?

    提出问题 整个世界是一个可计算的世界!基于计算机的数学教学理念(CBM)的宗旨是培养学生的计算思维!当听到这首歌时,大家有没有想过,北京的环线有多长?覆盖的地域有多宽?...将选中的拟合公式复制下来,进行环线周长函数的定义....最后制作成动态的模型。 北京几环可以覆盖月球? 如果未来人类在月球上定居的话, 那么月球的人相当于住在北京的多少环呢? ?...计算得到: 环路半径[40] 39148.9 结果表明,月球约相当于北京的40环! 那么火星呢? 其他行星呢? 这些问题可以利用Wolfram|Alpha来继续探究...... ?...以上是一个的基于计算机的数学教学的典型例子。培养计算思维的CBM课程设计不能仅仅停留在理论层面,而应该与实际软件工具相结合。

    1.3K20

    使用 autofac 实现 asp .net core 的属性注入

    使用 autofac 代替 asp .net core 默认的 IOC 容器,可实现属性注入。 之前的使用方式不受影响。...源码已开源: dotnet-campus/Autofac.Annotation: Autofac 扩展,使用 Attribute 进行服务注册与属性注入 更丰富的功能,可以看这里: yuzd/Autofac.Annotation...().AsImplementedInterfaces(); 通过属性获取服务 [Autowired] // 这个不是 autofac 自带的,是自己实现的,可以不要。...属性注入并不是 autofac 自动 帮我们完成的,得自己写代码,使用反射的方式,给哪些类进行属性注入。...参考文章 主要参考文章: ASP.NETCore 3.0 Autofac替换及控制器属性注入及全局容器使用 - 情·深 - 博客园 autofac 的官方示例: autofac/Examples:

    8600

    【 .NET Core 3.0 】框架之九 || 依赖注入 与 IoC

    二、常见的IoC框架有哪些 1、Autofac+原生 我常用的还是原生注入和 Autofac 注入。...Autofac:貌似目前net下用的最多吧 Ninject:目前好像没多少人用了 Unity:也是较为常见 微软 core 自带的 DI 其实.Net Core 有自己的轻量级的IoC框架, ASP.NET...2、三种注入的生命周期 权重: AddSingleton→AddTransient→AddScoped AddSingleton的生命周期: 项目启动-项目关闭 相当于静态类 只会有一个 AddScoped...(Autofac的动态代理,它依赖Autofac,所以可以不用单独引入Autofac)、Autofac.Extensions.DependencyInjection(Autofac的扩展),注意是最新版本的...实例化过程注入到了Autofac容器中, 这个时候要看明白,前边的是实现类,后边的是接口,顺序不要搞混了。

    1.1K30

    ASP.NET Core appsettings.json文件(9)《从零开始学ASP.NET CORE MVC》:

    Asp.net Core 预制的"空"模板创建的,所以我们的项目中已经有一个appsettings.json 的文件了。..."AllowedHosts": "*", "MyKey": " appsettings.json中Mykey的值", } 访问配置信息 若要访问 "Startup " 类中的配置信息, 请注入框架提供的...中,依赖注入是可选的,要配置它,我们必须使用像Ninject,autofac、castle windsor等第三方框架。...在 asp. net Core 中, 依赖注入是不可或缺的一部分。依赖注入能使我们能够创建低耦合、可扩展且易于测试的系统。 我们将在即将推出的视频中详细讨论依赖注入,尽情期待。...如果在多个配置源中具有相同密钥名称的配置设置,简单来说就是重名了,则后面的配置源将覆盖先前的配置源 。 几个地方的演示,分别是如何替换的。

    1.4K20
    领券