通过代码或配置注入依赖项的利弊
本文关键字:依赖 注入 代码 配置 | 更新日期: 2023-09-27 18:36:19
我知道结构图用于C#中的IoC。它可以通过两种方式挂钩。通过配置:
ObjectFactory.Initialize(x =>
{
x.UseDefaultStructureMapConfigFile = true;
});
<StructureMap>
<DefaultInstance PluginType="XXXXXXX, YYYYYY" PluggedType="AAAAA,BBBBB" Scope="PerRequest" />
</StructureMap>
从代码中,如下所示:
ObjectFactory.Initialize(x =>
{
x.UseDefaultStructureMapConfigFile = false;
x.AddRegistry<StructureMapRegistry>();
});
HttpContextLifecycle cycle = new HttpContextLifecycle();
For<IDataRepository<MethodName>>().LifecycleIs(cycle).Use<MethodName>();
我想知道这两种方法的优缺点是什么。
- 配置:
- 优点:您可以更改它而无需重新编译。
- 缺点:没有静态类型。类型或接口名称中的拼写错误在运行时之前可能不会被注意到。
- 法典:
- 优点:静态类型。无法使用未知或不兼容的类型进行编译。
- 缺点:如果不重新编译,就无法更改它。