Generate WSDL on the fly, with CodeDom instead WSDL:EXE
#C#
var wsdlDescription = ServiceDescription.Read(YourWSDLFile);
var wsdlImporter = new ServiceDescriptionImporter();
wsdlImporter.ProtocolName = "Soap12"; //Might differ
wsdlImporter.AddServiceDescription(wsdlDescription, null, null);
wsdlImporter.Style = ServiceDescriptionImportStyle.Server;
wsdlImporter.CodeGenerationOptions = System.Xml.Serialization.CodeGenerationOptions.GenerateProperties;
var codeNamespace = new CodeNamespace();
var codeUnit = new CodeCompileUnit();
codeUnit.Namespaces.Add(codeNamespace);
var importWarning = wsdlImporter.Import(codeNamespace, codeUnit);
if (importWarning == 0) {
var stringBuilder = new StringBuilder();
var stringWriter = new StringWriter(stringBuilder);
var codeProvider = CodeDomProvider.CreateProvider("Vb");
codeProvider.GenerateCodeFromCompileUnit(codeUnit, stringWriter, new CodeGeneratorOptions());
stringWriter.Close();
File.WriteAllText(WhereYouWantYourClass, stringBuilder.ToString(), Encoding.UTF8);
} else {
Console.WriteLine(importWarning);
}
#VB
Dim SoapClient As MSSOAPLib30.SoapClient30
Dim XMLDoc As MSXML2.DOMDocument40
Dim vCol As Collection
Dim abc As Variant
Set SoapClient = New MSSOAPLib30.SoapClient30
Set XMLDoc = New MSXML2.DOMDocument40
SoapClient.ClientProperty("ServerHTTPRequest") = True
Call
SoapClient.MSSoapInit("http://169.242.82.87:8080/apex/CurveWebService.ws
dl",
"CurveWebServiceService", "CurveWebService")
SoapClient.ConnectorProperty("Timeout") = 30000
SoapClient.ConnectorProperty("UseSSL") = 0
abc = SoapClient.getCurve("EMGLN", "YC_EUR_LIBOR", "GDAXML")
XMLDoc.validateOnParse = False
XMLDoc.LoadXml abc
https://weblog.west-wind.com/posts/2009/Feb/12/WSDL-Imports-without-WSDLexe
Keine Kommentare:
Kommentar veröffentlichen