gpt4 book ai didi

c# - 在 Autofac 中注册时如何避免使用 new 两次

转载 作者:行者123 更新时间:2023-12-02 17:04:48 25 4
gpt4 key购买 nike

我想使用带参数的构造函数注册两个依赖项,但我只想在“依赖项”类上创建一次"new"。而不是这个:

builder.RegisterInstance(new ClassA(new Dependency())).As<IClassA>().SingleInstance();
builder.RegisterInstance(new ClassB(new Dependency())).AsSelf().SingleInstance();

我想要这样的东西:

Dependency dependency = new Dependency();
builder.RegisterInstance(new ClassA(dependency)).As<IClassA>().SingleInstance();
builder.RegisterInstance(new ClassB(dependency)).AsSelf().SingleInstance();

最佳答案

如果您先注册依赖项,它应该会在需要时自动传递给新实例。

假设:

public class ClassA : IClassA
{
public ClassA(Dependency dependency)
{
}
}

public class ClassB
{
public ClassB(Dependency dependency)
{
}
}

然后注册依赖

var dependency = new Dependency();
builder.RegisterInstance(dependency).As<Dependency>();
builder.RegisterType<ClassA>().As<IClassA>().SingleInstance();
builder.RegisterType<ClassB>().AsSelf().SingleInstance();

关于c# - 在 Autofac 中注册时如何避免使用 new 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com