0

大家好,我是 MVC3 的初学者。我的问题是关于使用类。我正在使用网络服务来获取参数此时我没有问题,但我的问题是我一次又一次地定义每个控制器方法中的每个连接,所以有什么捷径吗?

这是一个例子:

public ActionResult BeyanListe()
        {

Services_building client = new Services_built();
            Services client_service = new Services();
            client_service.ClientCredentials.UserName.UserName = "service_test";
            client_service.ClientCredentials.UserName.Password = "..";
            client_service.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
            client.ClientCredentials.UserName.UserName = "service_test";
            client.ClientCredentials.UserName.Password = "..";
            client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;

return View()
}

如您所见,我已经为客户凭证声明了两次

4

2 回答 2

2
  1. 使控制器的 client_service 和客户端受保护或私有成员。
  2. 将初始化代码移动到控制器的构造函数中。
  3. 根据需要在您的操作中使用 client_service 和 client。

如果您在多个控制器中使用相同的模式,您可能需要考虑创建一个处理此功能的控制器基类。

于 2012-11-08T13:43:59.430 回答
0

我假设两个服务类都是从相同的接口派生的,例如。IServices,然后:

private void AssignCredentials(IServices services)
{
   services.ClientCredentials.UserName.UserName = "service_test";
   services.ClientCredentials.UserName.Password = "..";
   services.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
}

并在您的基本方法中调用 AssignCredentials 方法。

于 2012-11-08T13:49:38.447 回答