gpt4 book ai didi

c# - .Register 和 .RegisterType 是否等效(对于具有无参数构造函数的类)?

转载 作者:太空狗 更新时间:2023-10-29 23:00:48 24 4
gpt4 key购买 nike

使用 AutoFac 时,您可以使用 .RegisterType 将类与接口(interface)相关联,但您也可以使用 .Register(它允许您通过一个 lambda)。

对于具有无参数构造函数的类,这两种方法是否等效?

var builder = new Autofac.ContainerBuilder();

builder.RegisterType<MyClass>().As<IMyInterface>();
builder.Register(x => new MyClass()).As<IMyInterface>();

是否有任何场景可以使用 .RegisterType

最佳答案

假设您的类只有一个定义的构造函数,它们在功能上应该是等价的。

一个内部差异是 RegisterType 将使用反射来确定要使用的构造函数,而使用 lambda 的 Register 已提供所有需要的信息。

关于c# - .Register 和 .RegisterType 是否等效(对于具有无参数构造函数的类)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13682955/

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