2016-04-11 32 views
0

System.Web.Services ad alanına gereksinim duyduğum ve .NET 5 (Core) kullanıyorum, dinamik olarak sabun hizmetleri için proxy sınıfı oluşturuyorum. . Net5 içinde System.Web.Services ad alanını bulamıyorum, Bu yüzden başka bir ad alanına kullanımdan kaldırılmış veya taşınmış, nasıl .net 5. sınıfında System.Web.Services ad alanı kullanabilirim? kod burada Bu ad alanına gereksinim duyulur.System.Web.Services ad alanı .net core

public class DynamicWSProxy: IDynamicWSProxy 
{ 
    [SecurityPermissionAttribute(SecurityAction.Demand, Unrestricted = true)] 
    public object CallWebService(string webServiceAsmxUrl, string serviceName, string methodName, object[] args) 
    { 
     System.Net.WebClient client = new System.Net.WebClient(); 

     // Connect To the web service 
     System.IO.Stream stream = client.OpenRead(webServiceAsmxUrl + "?wsdl"); 

     // Now read the WSDL file describing a service. 
     ServiceDescription description = ServiceDescription.Read(stream); 

     ///// LOAD THE DOM ///////// 

     // Initialize a service description importer. 

     ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); 
     importer.ProtocolName = "Soap12"; // Use SOAP 1.2. 
     importer.AddServiceDescription(description, null, null); 

     // Generate a proxy client. 
     importer.Style = ServiceDescriptionImportStyle.Client; 

     // Generate properties to represent primitive values. 
     importer.CodeGenerationOptions = System.Xml.Serialization.CodeGenerationOptions.GenerateProperties; 

     // Initialize a Code-DOM tree into which we will import the service. 
     CodeNamespace nmspace = new CodeNamespace(); 
     CodeCompileUnit unit1 = new CodeCompileUnit(); 
     unit1.Namespaces.Add(nmspace); 

     // Import the service into the Code-DOM tree. This creates proxy code that uses the service. 
     ServiceDescriptionImportWarnings warning = importer.Import(nmspace, unit1); 

     if (warning == 0) // If zero then we are good to go 
     { 

      // Generate the proxy code 
      CodeDomProvider provider1 = CodeDomProvider.CreateProvider("CSharp"); 

      // Compile the assembly proxy with the appropriate references 
      string[] assemblyReferences = new string[5] { "System.dll", "System.Web.Services.dll", "System.Web.dll", "System.Xml.dll", "System.Data.dll" }; 

      CompilerParameters parms = new CompilerParameters(assemblyReferences); 

      CompilerResults results = provider1.CompileAssemblyFromDom(parms, unit1); 

      // Check For Errors 
      if (results.Errors.Count > 0) 
      { 
       foreach (CompilerError oops in results.Errors) 
       { 
        System.Diagnostics.Debug.WriteLine("========Compiler error============"); 
        System.Diagnostics.Debug.WriteLine(oops.ErrorText); 
       } 
       throw new System.Exception("Compile Error Occured calling webservice. Check Debug ouput window."); 
      } 

      // Finally, Invoke the web service method 

      object wsvcClass = results.CompiledAssembly.CreateInstance(serviceName, true); 

      MethodInfo mi = wsvcClass.GetType().GetMethod(methodName); 

      return mi.Invoke(wsvcClass, args); 

     } 

     else 
     { 
      return null; 
     } 
    } 

} 

cevap

0

System.Web.Services, WCF'nin öncülüdür. Güçlü WCF bile sunucu tarafında kabul edilmediği için, System.Web.Services'ın .NET Core veya somut Uygulama Modeli ASP.NET Core 1.0'da kullanılabilir olmasını beklemeyin. Ad alanları Microsoft.AspNetCore ile bile başlıyor. SOAP, REST ve JSON lehine kabul edilmez olarak kabul edilir. Microsoft size söyleyecektir: .NET Framework'ü kullanın, .NET Core kullanın.