Csharp/C#教程:通过WSDL创建动态SOAP客户端分享


通过WSDL创建动态SOAP客户端

我正在尝试转换此代码,在.net核心工作…此代码读取WSDL文件,并动态生成程序集(因为我有多个wsdl文件)。 但是这段代码不能在核心编译…因为我没有例如CSharpCodeProvider类。

谁知道更好的方法?

上述就是C#学习教程:通过WSDL创建动态SOAP客户端分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

private void Teste() { var ass = CriarAssemblie(wsdl); dynamic service = Activator.CreateInstance(ass.GetType("Type1")); } private Assembly CreateAssembly(Stream wsdlFile) { var serviceDescription = ServiceDescription.Read(wsdlFile); StringWriter strWriter = new StringWriter(CultureInfo.CurrentCulture); CSharpCodeProvider cProvider = new CSharpCodeProvider(); cProvider.GenerateCodeFromNamespace(GerarNameSpace(serviceDescription), strWriter, null); string codigoClasse = strWriter.ToString(); CompilerParameters parameters = new CompilerParameters(new string[] { "System.dll", "System.Xml.dll", "System.Web.Services.dll", "System.Data.dll" }); parameters.GenerateExecutable = false; parameters.GenerateInMemory = true; parameters.TreatWarningsAsErrors = false; parameters.WarningLevel = 4; CompilerResults results = cProvider.CompileAssemblyFromSource(parameters, codigoClasse); return results.CompiledAssembly; } private CodeNamespace GerarNameSpace(ServiceDescription serviceDescription) { var importer = new ServiceDescriptionImporter(); importer.AddServiceDescription(serviceDescription, string.Empty, string.Empty); importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties; var @namespace = new CodeNamespace(); var unit = new CodeCompileUnit(); unit.Namespaces.Add(@namespace); importer.Import(@namespace, unit); return @namespace; } XDocument parseXmlDocument(XmlElement ele) { var xml = new XmlDocument(); xml.LoadXml(ele.OuterXml); return xml; } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/955210.html

(0)
上一篇 2021年11月21日
下一篇 2021年11月21日

精彩推荐