C# Autofac触发器寿命范围创建
在解析组件时,是否有任何方法导致创建新的C# Autofac触发器寿命范围创建,c#,dependency-injection,inversion-of-control,autofac,C#,Dependency Injection,Inversion Of Control,Autofac,在解析组件时,是否有任何方法导致创建新的lifetimescope 意思是 container.registerType().As().TriggersNewScope() 还有别的方法吗?除了依赖ILifetimeScope并通过它直接解析之外 如果没有,是否有一种方法可以抽象出ILifetimeScope?我不希望应用程序的这一部分引用Autofac 谢谢实际上并没有“组件触发生命周期范围创建”这样的东西。但是,您可能对以下内容感兴趣。这会导致组件在其自身的小生命周期内解析。实际上并没有“组
lifetimescope
意思是
container.registerType().As().TriggersNewScope()
还有别的方法吗?除了依赖ILifetimeScope并通过它直接解析之外
如果没有,是否有一种方法可以抽象出ILifetimeScope
?我不希望应用程序的这一部分引用Autofac
谢谢实际上并没有“组件触发生命周期范围创建”这样的东西。但是,您可能对以下内容感兴趣。这会导致组件在其自身的小生命周期内解析。实际上并没有“组件触发生命周期范围创建”这样的事情。但是,您可能对以下内容感兴趣。这将导致组件在其自身的小生命周期内解析。您需要将重用的服务注册为 剩余未解决的部分是避免提及Autofac,以下是一种可能的解决方法:
- 在Autofac不可知程序集中定义您的IOwned接口
- 在Autofac-aware composition根目录中定义并注册开放的通用自定义实现:
class CustomOwned<T> : IOwned<T>, IDisposable { public T Value { get { return _owned.Value; } } public CustomOwned(Autofac.Owned<T> owned) { _owned = owned; } // IDisposable implementation and whatever additional stuff }
class CustomOwned:IOowned,IDisposable { 公共T值{get{return}owned.Value;} 公共客户所有(Autofac.Owned) { _拥有=拥有; } //IDisposable实现和其他任何东西 }
- 在类型中使用IOwned而不是Owned
- 在Autofac不可知程序集中定义您的IOwned接口
- 在Autofac-aware composition根目录中定义并注册开放的通用自定义实现:
class CustomOwned<T> : IOwned<T>, IDisposable { public T Value { get { return _owned.Value; } } public CustomOwned(Autofac.Owned<T> owned) { _owned = owned; } // IDisposable implementation and whatever additional stuff }
class CustomOwned:IOowned,IDisposable { 公共T值{get{return}owned.Value;} 公共客户所有(Autofac.Owned) { _拥有=拥有; } //IDisposable实现和其他任何东西 }
- 在类型中使用IOwned而不是Owned