0

みなさんこんにちは MVC3初心者です。私の質問は、クラスの使用についてです。この時点で Web サービスを使用してパラメーターを取得していますが、問題はありませんが、各コントローラーメソッドですべての接続を何度も定義しているので、ショートカットはありますか?

次に例を示します。

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()
}

ご覧のとおり、clientcredentials に対して 2 回宣言しました

4

2 に答える 2

2
  1. client_service および client をコントローラーのプロテクト メンバーまたはプライベート メンバーにします。
  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 に答える