【问题标题】:How can I call a WCF service from code, in the .net framework 3如何在 .net 框架 3 中从代码调用 WCF 服务
【发布时间】:2010-11-16 13:16:22
【问题描述】:

我在 VB.Net 中工作,我正在尝试使一段代码更通用。

事实上,有一个很大的 Select Case 语句,它基于传入的参数值(字符串)构建 ProxyServer。

 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 = new wcfServicesContainer("serviceNameHere", paramArray())

或类似的东西,所以我可以移除所有那些重复相同事情 30 次的大开关盒。

objWsHL7 在编译时是一个对象或类型“对象”。

对不起,如果我没有提到足够的细节,如果您需要更多信息,请随时告诉我,我真的不知道我必须为此提供什么信息。

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

同样,在另一个 switch case 语句中,

objMsgHL7Out = _objWsHL7.ProviderDetailsQuery(_objMsgIn)

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

【问题讨论】:

    标签: vb.net wcf proxy-server


    【解决方案1】:

    试试这个:

    • 创建HashMap<string, string>的哈希图
    • 添加 Constantes.NomPRPMIN306010, ... 作为键和 "AddProvider", ... 作为值。
    • 致电ObtenirUrl(hashmap[_strNteraHL7], ...

    【讨论】:

    • 好主意,我想做一些类似于你建议的事情,但是,我正在为我们的配置文件使用 Sqlite 文件。而且我想有一种方法将我的常量字符串与服务相关联(很可能,我想将字符串与标识服务的字符串相关联..)
    • 我想我已经想到了一种可以做我想做的事情的方法,可以在我一开始想要的和你的建议之间做出妥协,谢谢。
    猜你喜欢
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多