我面临的情况是我的 Class 构造函数需要 2 个参数。一个参数需要由调用对象手动传递,而另一个参数应由 Structuremap 注入。我只想公开一个采用应该手动传递的参数值的构造函数。我想隐藏第二个参数,因为它应该由结构图本身处理。任何人都可以建议如何做到这一点。
我有这样的场景
public class ProcessPayments
{
public ProcessPayments(String accountNumber, IProcessPayments paymentProcesser)
{
...
}
}
我想像这样只用第一个参数公开构造函数
var P = new ProcessPayments("123");
我希望 Structure Map 根据我的配置自动为我注入 IProcessPayments 依赖项。
我怎样才能做到这一点?
我可以在我的构造函数中做这样的事情
public ProcessPayments(String accountNumber)
{
_AccountNumber = accountNumber;
_ProcessPayments = ObjectFactory.GetInstance<IProcessPayments >();
}
但这意味着现在我依赖于 Structure Map 本身,我不喜欢这个选项。还有其他优雅的解决方案吗?