我有web service。
内置powerbuilder 12.5的EasySoap不能支持这个xml,这就是为什么我开始用C#开发一个dll来调用powerbuilder。
我使用SoapUI生成C#代码,如下所示:
namespace proxy_ws {
using System;
using System.Web.Services;
using System.Diagnostics;
using System.Web.Services.Protocols;
using System.Xml.Serialization;
using System.ComponentModel;
using System.Runtime.InteropServices;
[Guid("some guid")]
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.6.1055.0")]
[System.Web.Services.WebServiceBindingAttribute(Name="v3.5Binding", Namespace="urn:v3.5")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IV35Binding {
[System.Web.Services.WebMethodAttribute()]
[System.Web.Services.Protocols.SoapRpcMethodAttribute("urn:v3.5WSDL#valConsultar", RequestNamespace="urn:v3.5WSDL", ResponseNamespace="urn:v3.5WSDL")]
[return: System.Xml.Serialization.SoapElementAttribute("return")]
string valConsultar(string Prestadora, string Usuario, string Clave, string IdPrestador, string FechaDesde, string FechaHasta, string IdEmpresa, string AfiliadoNombre, string AfiliadoNumero, string ValidacionNumero, string IdEstado);
}
}
之前我从未参加过C#,但我确信我需要某种课程来这样打电话:
[ProgId(“proxy_ws.IV35Binding”)]
public class Cproxy_ws: IV35Binding
但是如果我尝试在c#.net上写它,它就会抛出这个错误:
Error 3 'proxy_ws.IV35Binding.valConsultar(string, string, string, string, string, string, string, string, string, string, string)' “must declare a body because it is not marked abstract, extern, or partial”
但是我需要这个,因为在powerbuilder中,我需要它像这样称呼它:
全球外部职能:
Function string Sen(String pPrestadora, String pUsuario, String pClave, String pIdPrestador, String pFechaDesde, String pFechaHta, String pIdEmpresa, String pAfiliadoNombre, String pAfiliadoNumero, String pValidacionNumero, String pIdEstado) library "proxy_ws.dll" alias for "valConsultar;ansi"
代码:
iole = CREATE OLEObject
li_rc = iole.ConnectToNewObject('proxy_ws.IV35Binding')
IF li_rc <> 0 THEN
DESTROY iole
else
编辑:
我需要C#代码就像一个dll,只需从电源调用内部函数。