C# 简单的喷射器登记混凝土类型与生活方式

C# 简单的喷射器登记混凝土类型与生活方式,c#,dependency-injection,simple-injector,C#,Dependency Injection,Simple Injector,我正在寻找一种方法,我可以注册一个具体的类型与指定的生活方式,基本上类似于下面的东西 public void SomeFunction( Type concrete, Lifestyle lifestyle ) => container.Register( concrete, lifestyle ); 这应该行得通 container.Register<SomeConcreteType,SomeConcreteType>(Lifestyle.Scoped); co

我正在寻找一种方法,我可以注册一个具体的类型与指定的生活方式,基本上类似于下面的东西

public void SomeFunction( Type concrete, Lifestyle lifestyle ) =>
    container.Register( concrete, lifestyle );
这应该行得通

 container.Register<SomeConcreteType,SomeConcreteType>(Lifestyle.Scoped);
container.Register(lifesture.Scoped);
生活方式是其中之一:短暂的、有范围的或是单身的

 container.Register<SomeConcreteType,SomeConcreteType>(Lifestyle.Scoped);
container.Register(lifesture.Scoped);

生活方式是其中之一:瞬态、范围或单例

在简单喷油器中进行一对一映射时,实际上只有一种方法:

Container.Register(Type serviceType, Type implementationType, Lifestyle lifestyle);
所有其他方法都只是此方法的方便重载或“快捷方式”。例如,以下方法:

Container.Register<TService, TImplementation>(Lifestyle)
他们只是通过为给定的实现类型提供确定的生活方式来转发调用,在默认配置下,这是瞬态生活方式:
Register(lifety.transient)

还有多个重载允许对具体类型进行快捷注册,例如:

Container.Register<TConcrete>()

在简单喷油器中进行一对一映射时,实际上只有一种方法:

Container.Register(Type serviceType, Type implementationType, Lifestyle lifestyle);
所有其他方法都只是此方法的方便重载或“快捷方式”。例如,以下方法:

Container.Register<TService, TImplementation>(Lifestyle)
他们只是通过为给定的实现类型提供确定的生活方式来转发调用,在默认配置下,这是瞬态生活方式:
Register(lifety.transient)

还有多个重载允许对具体类型进行快捷注册,例如:

Container.Register<TConcrete>()

需要更多信息我已经提供了我想要做的事情的代码示例,SimpleInjector中没有匹配的签名。我不能提供更多的信息,除非你能澄清你需要更多的信息。需要更多的信息我已经提供了我想要做的事情的代码示例,SimpleInjector中没有匹配的签名。我不能提供更多的信息,除非你能澄清你需要更多的信息。你可能想再看看这个问题。代码示例使用的是类型而不是泛型。您可能需要再次查看该问题。代码示例使用的是类型而不是泛型。