我有一个问题,我有一个 WCF 服务引用,并希望将其注入客户端的 MVC 控制器中。当我不想指定参数时,这很好用,但我已经向服务添加了用户名和密码凭据,因此必须像这样设置:
MyServiceRef.ClientCredentials.UserName.UserName = username;
MyServiceRef.ClientCredentials.UserName.Password = password;
我决定尝试使用 Unity 来处理用户名和密码,方法是使用构造函数创建服务引用的部分类,其中 2 个字符串作为用户名和密码的参数,一个作为 isTest (Bool) 的参数。
public partial class ProductMasterServiceClientClient
{
public ProductMasterServiceClientClient(string username, string password, bool test)
{
ClientCredentials.UserName.UserName = username;
ClientCredentials.UserName.Password = password;
}
}
并像这样设置 Unity:
container.RegisterType<IProductMasterServiceClient, ProductMasterServiceClientClient>(new InjectionConstructor(new InjectionProperty("username", "test"),new InjectionProperty("password", "password"), new InjectionProperty("test", true)));
但它不起作用!由于某种原因,我收到以下错误:(
The type com.luzern.co40.web.pm.wsProductMasterService.ProductMasterServiceClientClient does not have a constructor that takes the parameters (InjectionProperty, InjectionProperty, InjectionProperty).
有人知道为什么它不适合我吗?:)