1

私はVB.Netで作業しており、コードの一部をより一般的にしようとしています。

実際、パラメーター(文字列)で渡された値に基づいてProxyServerを構築する大きなSelectCaseステートメントがあります。

 Select Case _strNteraHL7
        Case Constantes.NomPRPMIN306010
            strUrl = ObtenirUrl("ProviderDetailsQuery", _strVersion, _strEnvir, True, _blnSimulCAIS, _blnSimulPDS, _blnSimulPDSSIIR, _blnSimulPDSInteg)
            objWsHL7 = New wsProviderDetailsQuery.ProviderDetailsQueryClient(objBinding, New EndpointAddress(strUrl))
        Case Constantes.NomPRPMIN301010
            strUrl = ObtenirUrl("AddProvider", _strVersion, _strEnvir, True, _blnSimulCAIS, _blnSimulPDS, _blnSimulPDSSIIR, _blnSimulPDSInteg)
            objWsHL7 = New wsAddProvider.AddProviderClient(objBinding, New EndpointAddress(strUrl))

前の例の「wsAddProvider」や「wsProviderDetailsQuery」などのオブジェクトは、VisualStudioのGUIを介して追加されたサービス参照です。

私が知りたいのは、基本的に、コントロールコンテナー内のコントロールを呼び出したい場合と同様に、サービス参照を含む特定のプールからこのコンストラクターを呼び出すことができるかどうかです。

例えば:

objWsHL7 = new wcfServicesContainer( "serviceNameHere"、paramArray())

または同様のものなので、同じことを30回繰り返す大きなスイッチケースをすべて削除できます。

objWsHL7はオブジェクトであるか、コンパイル時に「object」と入力します。

十分な詳細について言及しなかった場合は申し訳ありませんが、さらに必要な場合はお気軽にお知らせください。このために提供する必要のある情報がわかりません。

編集:私はここで同様の呼び出しを使用する別のコードを見つけました、多分それは理解に役立つでしょう...

繰り返しますが、別のswitch caseステートメントでは、

objMsgHL7Out = _objWsHL7.ProviderDetailsQuery(_objMsgIn)

objMsgHL7OutはSystem.ServiceModel.Channels.Message_objMsgInはSystem.ServiceModel.Channels.Message_objWsHL7はオブジェクトです

4

1 に答える 1

1

これを試して:

  • のハッシュマップを作成するHashMap<string, string>
  • Constantes.NomPRPMIN306010, ... をキーとして追加し、 "AddProvider", ... を値として追加します。
  • 電話ObtenirUrl(hashmap[_strNteraHL7], ...
于 2010-11-16T13:33:30.060 に答える