草庐IT

c# - 如何在 Autofac 中注册这些类

我正在使用autofac作为Ioc容器。我有三个类(class):classService{publicService(Repositoryrep,UnitOfWorkcontext){}}ClassRepository{publicRepository(UnitOfWorkcontext){}}classUnitOfWork{}Service和Repository需要相同的UnitOfWork实例该怎么做?以及如何在XmlConfiguration中编写它 最佳答案 编辑:我误读了这个并认为这是一个关于如何使用autofac注册依

c# - 如何在 EndRequest 中使用 Autofac?

我在.NetMVC3中使用Autofac。Autofac似乎处理了Application_EndRequest中的生命周期范围,这是有道理的。但是,当我尝试在我自己的代码中查找在EndRequest期间执行的服务时,这会导致此错误:MESSAGE:InstancescannotberesolvedandnestedlifetimescannotbecreatedfromthisLifetimeScopeasithasalreadybeendisposed.STACKTRACE:System.ObjectDisposedExceptionatAutofac.Core.Lifetime.L

c# - 使用 Autofac 创建具有依赖关系的类的实例

问题:假设类:publicclassMyAwesomeClass{privateIDependCls_dependCls;publicMyAwesomeClass(IDependClsdependCls){_dependCls=dependCls;}}在其他地方我需要得到那个类的一个实例,像这样:publicclassSomewhereElse{publicvoidAwesomeMethod(){//...//AwesomeStuff//...varGetErDone=newMyAwesomeClass();//PROBLEM!Noconstructorwith0arguements}

c# - autofac 中的条件组件注册

是否可以根据其他组件的状态有条件地注册组件?像这样的东西:ContainerBuilder.RegisterConditionally(Func,Func);我发现在autofacV2之前,可以使用“Register().OnlyIf()”结构,这似乎正是我正在寻找的结构。我希望这样的功能有条件地覆盖默认注册。classCommonRegistrations{publicvirtualvoidRegister(ContainderBuilderbuilder){builder.Register(ctx=>LoadSettings()).As().SingleInstance();bui

c# - AutoFac/.NET Core - 注册 DBcontext

我有一个新的.NETCoreWebAPI项目,它具有以下项目结构:API->业务/领域->基础设施API非常精简,只有API方法。业务/领域层具有我所有的业务逻辑。最后,我的基础架构层具有使用EFCore2.0的数据库类。我知道使用.NETCore内置的依赖注入(inject),我可以将API项目的引用添加到基础设施项目,然后在StartUp.cs文件中添加以下代码:services.AddDbContext(options=>options.UseSqlServer(connectionString));但是,我想保持更传统的关注点分离。到目前为止,我已经在我的基础设施层中添加了一个

c# - Hangfire.Autofac 与 MVC 应用程序 - 注入(inject)失败

我正在尝试创建一个简单的Hangfire测试,但它不起作用。这是所有重要的代码,以及我如何使用Hangire.Autofac配置它。不知道我在这里错过了什么。我在/hangfire仪表板中遇到的异常也在下面。publicclassAmazonSqsService:IAmazonSqsService{privatereadonlyIBackgroundJobClient_backgroundJobClient;privatereadonlyILogService_logService;publicAmazonSqsService(IBackgroundJobClientbackgroun

c# - 如何使用 Serilog 和 AutoFac 在控制台应用程序中获取 Microsoft.Extensions.Logging<T>?

我们在ASP.NETCore应用程序中有常见的BL类,这些类在ctor中:Microsoft.Extensions.Logging.ILogger在ASP.NETCore中,ASP.NET的内部基础结构通过LoggerFactory处理获取ILogger。.我们现在想在控制台应用程序中重用这些BL类(用于异步作业),我们如何设置AutoFac和Serilog以注入(inject)Microsoft.Extensions.Logging.ILogger在LoggerFactory的环境中不存在? 最佳答案 Microsoft.Exte

c# - 将 autofac 与最小起订量一起使用

我需要用特定接口(interface)注册我的Autofac容器,对于这种情况我想解析模拟。我该怎么做?我试过:varAppContainer=ApplicationContainer.GetApplicationContainer();varcb=newContainerBuilder();cb.RegisterType>().As().SingleInstance();cb.Update(AppContainer);我不想更改我的代码来解决除IStudyLoader以外的问题,但是Mock不可替代IStudyLoader;例如Mock.Object可替代IStudyLoader,但

c# - 是否可以从 Autofac 容器构建器中删除现有注册?

类似的东西:builder.RegisterType().As();builder.RegisterType().As();builder.DeRegisterType().As()varcontainer=builder.Build();vartypes=container.Resolve>();Assert.IsTrue(types.Count==1);Assert.IsTrue(types[0].GetType==typeof(MyType2));场景:我经历了一堆程序集,并且在我进行过程中注册了类型,但我想确保我只有一个给定类型的实现。我需要在创建容器之前执行此操作。我可以自己

c# - Autofac 属性注入(inject)在属性上失败

我发现了一些关于此的问题,但它们往往指向我正在关注的确切文档......但它仍然无法正常工作。我正在构建一个相当简单的ASP.NETMVC4站点,计划使用基于ActionFilterAttribute的日志记录。我有一个DataAccessProvider类,它打开与数据库的事务并提供工作单元实例,我试图将它注入(inject)过滤器属性。documentation表示只需调用RegisterFilterProvider(),并确保相关类型已注册。它明确表示不需要注册该属性,但我已经尝试过使用和不使用。我的代码目前看起来像这样:varbuilder=newContainerBuilde