我怎样才能调用WCF服务的代码,在.NET Framework 3(How can I call a

2019-09-27 04:17发布

我在VB.Net工作,我试图让一段代码更通用。

事实上,有这么建立基于参数(字符串)传递值的访问代理服务器大的选择case语句。

 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”的对象是已通过Visual Studio的GUI添加服务引用...

我想知道的,基本上是,如果我可以从包含服务引用,当我想打电话给在控制容器的控件类似某种池调用此构造...

例如:

objWsHL7 =新wcfServicesContainer( “serviceNameHere” 的ParamArray())

或类似的东西,这样我就可以删除所有这些大的开关的情况下,也重复同样的事情30倍。

objWsHL7作为一个对象类型或“对象”在编译。

很抱歉,如果我没有提到足够的细节,随时让我知道如果你需要更多的,我真的不知道我有什么样的信息,以提供这一点。

编辑:我发现了另一块的代码在这里使用类似的电话,也许它会帮助理解...

同样,在另一个开关case语句,

objMsgHL7Out = _objWsHL7.ProviderDetailsQuery(_objMsgIn)

objMsgHL7Out是System.ServiceModel.Channels.Message _objMsgIn是System.ServiceModel.Channels.Message _objWsHL7是一个对象

Answer 1:

尝试这个:

  • 创建的一个HashMap HashMap<string, string>
  • 添加Constantes.NomPRPMIN306010 ,...为键和"AddProvider" ......作为价值。
  • 调用ObtenirUrl(hashmap[_strNteraHL7], ...


文章来源: How can I call a WCF service from code, in the .net framework 3