gpt4 book ai didi

dependency-injection - 使用 StructureMap 时传递构造函数参数

转载 作者:行者123 更新时间:2023-12-03 07:00:32 24 4
gpt4 key购买 nike

我正在为我的 DI 使用 StructureMap。想象一下我有一个类需要 1 个参数,例如:

public class ProductProvider : IProductProvider
{
public ProductProvider(string connectionString)
{
....
}
}

当我获取 IProductProvider 实例时,我需要在运行时指定“connectionString”。

我已按如下方式配置 StructureMap:

ForRequestedType<IProductProvider>.TheDefault.Is.OfConcreteType<ProductProvider>().  
WithCtorArgument("connectionString");

但是,我不想在这里调用 EqualTo("something...") 方法,因为我需要一些工具来在运行时动态指定该值。

我的问题是:如何使用 ObjectFactory 获取 IProductProvider 的实例?

目前,我有这样的东西:

ObjectFactory.GetInstance<IProductProvider>();  

但如您所知,这行不通......

如有任何建议,我们将不胜感激。

最佳答案

我建议使用 StructureMap 配置来声明这一点。使用稍新的 StructureMap 代码:

For<IProductProvider>().Use<ProductProvider>
.Ctor<string>("connectionString").Is(someValueAtRunTime);

这样您就不会因为必须知道该值而给客户端代码带来负担,并且可以将 IoC 配置与主代码分开。

关于dependency-injection - 使用 StructureMap 时传递构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824088/

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