如何配置StructureMap以获取多个contstructor参数?

Dav*_*Dev 0 c# structuremap

我有以下类型需要由StructureMap实例化:

public class AWebService : IAWebService
{
    private readonly string _applicationId;
    private readonly string _username;
    private readonly string _password;

    public AWebService(string applicationId, string username, string password)
    {
        _applicationId = applicationId;
        _username = username;
        _password = password;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是这个构造函数需要3个参数.我已经看到了如何为StructureMap提供一个参数的示例(例如,在使用StructureMap时传递构造函数参数)但是我不确定我需要做什么来传递3.

它只是一个案例:

For<IAWebService>().Use<AWebService>()
  .Ctor<string>("applicationId").Is(GetIDFromConfig())
  .Ctor<string>("username").Is(GetUsernameFromConfig())
  .Ctor<string>("password").Is(GetPasswordFromConfig());
Run Code Online (Sandbox Code Playgroud)

或者我必须以不同的方式配置它?

Bas*_*sen 6

您是否尝试过问题中的代码,看起来是正确的.

使用structuremap注册您的类型并设置字符串构造函数参数

var container = new Container(x => {
            x.For<IAWebService>().Use<AWebService>()
                .Ctor<string>("applicationId").Is("my app id")
                .Ctor<string>("username").Is("my username")
                .Ctor<string>("password").Is("my passowrd");
        });
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用参数集获得服务.

var service = container.GetInstance<IAWebService>();
Run Code Online (Sandbox Code Playgroud)