我有以下类型需要由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)
或者我必须以不同的方式配置它?
您是否尝试过问题中的代码,看起来是正确的.
使用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)
| 归档时间: |
|
| 查看次数: |
1937 次 |
| 最近记录: |