小编Ste*_*eve的帖子

通过WSDL创建动态SOAP客户端

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

谁知道更好的方法?

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 …
Run Code Online (Sandbox Code Playgroud)

c# soap wsdl webservice-client .net-core

5
推荐指数
0
解决办法
622
查看次数

标签 统计

.net-core ×1

c# ×1

soap ×1

webservice-client ×1

wsdl ×1