jjzjj

windows - Windows 服务中带有 Autofac 的 NHibernate session 处理程序

我有一个Mvc系统,可以与NHibernate和Autofac一起正常工作...我这样做是为了管理NHsession:publicstaticvoidInit(Assemblyassembly){varbuilder=newContainerBuilder();builder.RegisterControllers(assembly);builder.Register(x=>NHibernateInitializer.BuildSessionFactory()).SingleInstance();builder.Register(x=>x.Resolve().OpenSession()

windows - Autofac 与 MEF 集成

我需要帮助。我使用Autofac容器创建Windows服务。我使用MEF集成服务为我的服务创建多个替代组件。例如:模块1[Export(typeof(IClass1))]publicclassClass1:IClass1{publicvoidShow(){Console.WriteLine("HallofromClass1");}}模块2[Export(typeof(IClass2))]publicclassClass2:IClass2{publicvoidShow(){Console.WriteLine("HallofromClass2");}}模块集成的基本类-示例classPro

c# - Autofac:如何在不绕过 IoC 容器的情况下限制 IDisposable 对象的生命周期

我目前正在学习如何使用Autofac,而且我一直坚持处理IDisposable对象确定性。在我陈述我的问题之前,让我先介绍一下情况。起始位置:假设我的对象模型是通过以下接口(interface)定义的:interfaceIApple:IDisposable{voidConsume();}interfaceIHorse{voidEat(IAppleapple);//issupposedtocallapple.Consume()}interfaceIHorseKeeper{voidFeedHorse();//issupposedtocallhorse.Eat(apple)//where'h

c# - 在我的项目中仅针对 Owned<T> 引用 Autofac 是不是糟糕的设计?

我最近成为Autofac的OwnedInstances功能的重度用户。例如,我用它来提供一个工厂来为我的数据库创建一个工作单元,这意味着我依赖于UnitOfWork工厂的类正在请求以下类型的对象:Func>这非常有用——非常适合keepingIDisposableoutofmyinterfaces--但它是有代价的:因为Owned是Autofac程序集的一部分,我必须在我的每个知道Owned的项目中引用Autofac,并在每个代码中加入“usingAutofac.Features.OwnedInstances”文件。Func具有构建到.NET框架中的巨大好处,因此我毫不怀疑将Func用

c# - 使用 Autofac 注册容器本身

我想知道在自身内部注册容器是否有任何副作用IContainercontainer;ContainerBuilderbuilder=newContainerBuilder();container=builder.Build();builder.RegisterInstance(container).As();像这样使用它builder.RegisterType().As().WithParameter(newResolvedParameter((pi,ctx)=>pi.ParameterType==typeof(IContainer)&&pi.Name=="Container",(pi,

c# - 我可以像在 Autofac 中那样在 Unity 中的模块中注册我的类型吗?

我对Autofac相当熟悉,我非常喜欢Autofac的一项功能是模块注册。有谁知道我如何使用Unity做到这一点?我很难找到在Google中使用哪些术语来得出统一等价物(如果有的话)。publicclassGlobal:HttpApplication,IContainerProviderAccessor{privatestaticIContainerProvider_containerProvider;protectedvoidApplication_Start(objectsender,EventArgse){varbuilder=newContainerBuilder();buil

c# - 如何在 Autofac 注册中调用异步方法?

我想调用awaitableasync注册过程中的方法是这样的://buildervariablecontainsAutofacContainerBuilderbuilder.Register((async(context,parameters)=>//needasynchere{varsomeClass=newSomeClass(context.Resolve());awaitsomeClass.SomeAsyncInitMethod();//needtoawaitresultreturnsomeClass;})).As().SingleInstance();SomeClass工具IS

c# - 基 Controller 类的属性注入(inject)

我正在尝试在派生self的BaseController类的任何Controller上自动设置一个属性。这是我的Application_Start方法中的代码。UnitOfWork属性在我尝试访问它时始终为null。varbuilder=newContainerBuilder();builder.RegisterControllers(typeof(MvcApplication).Assembly);builder.RegisterType().As();builder.RegisterType().As();builder.RegisterType().OnActivated(c=>c

c# - Autofac:注册组件并根据解析父解析

我想注册一个组件,以根据它可能解析的类使用参数进行解析。(这听起来有点令人困惑,所以我将展示一个示例)。这是一个使用记录器的对象:classMyObject:IMyObject{publicILoggerLogger;publicMyObject(ILoggerlogger){Logger=logger;}}现在传入的记录器可能因类而异。所以我对如何在下面做到这一点有一个相当修补的想法:classMyLogger:ILogger{publicstringName{get;protectedset;}publicstaticILoggerGetLogger(stringclassName

c# - 如何在 Autofac 中获取所有注册的服务类型

我有一个Autofac容器,我希望能够检索所有已注册的服务类型(不是实现类型,而是它们注册的类型)。如何从IComponentContext中获取此信息? 最佳答案 你可以使用这个:varservices=context.ComponentRegistry.Registrations.SelectMany(x=>x.Services).OfType().Select(x=>x.ServiceType); 关于c#-如何在Autofac中获取所有注册的服务类型,我们在StackOverfl