ServiceDescriptionImporter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Macht eine Methode zum Generieren von Clientproxyklassen für XML-Webdienste verfügbar.
public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
- Vererbung
-
ServiceDescriptionImporter
Beispiele
Im folgenden Beispiel wird die Verwendung der ServiceDescriptionImporter Klasse veranschaulicht, um Proxyclientcode zu generieren, der einen XML-Webdienst aufruft, der von einer WSDL-Datei beschrieben wird.
#using <System.Xml.dll>
#using <System.Web.Services.dll>
#using <System.dll>
using namespace System;
using namespace System::Web::Services::Description;
using namespace System::CodeDom;
using namespace System::CodeDom::Compiler;
int main()
{
// Get a WSDL file describing a service.
ServiceDescription^ description = ServiceDescription::Read( "service.wsdl" );
// Initialize a service description importer.
ServiceDescriptionImporter^ importer = gcnew ServiceDescriptionImporter;
importer->ProtocolName = "Soap12"; // Use SOAP 1.2.
importer->AddServiceDescription( description, nullptr, nullptr );
// Report on the service descriptions.
Console::WriteLine( "Importing {0} service descriptions with {1} associated schemas.", importer->ServiceDescriptions->Count, importer->Schemas->Count );
// 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 = gcnew CodeNamespace;
CodeCompileUnit^ unit = gcnew CodeCompileUnit;
unit->Namespaces->Add( nmspace );
// Import the service into the Code-DOM tree. This creates proxy code
// that uses the service.
ServiceDescriptionImportWarnings warning = importer->Import(nmspace,unit);
if ( warning == (ServiceDescriptionImportWarnings)0 )
{
// Generate and print the proxy code in C#.
CodeDomProvider^ provider = CodeDomProvider::CreateProvider( "CSharp" );
ICodeGenerator^ generator = provider->CreateGenerator();
generator->GenerateCodeFromCompileUnit( unit, Console::Out, gcnew CodeGeneratorOptions );
}
else
{
// Print an error message.
Console::WriteLine( warning );
}
}
using System;
using System.Web.Services.Description;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Security.Permissions;
public class Import {
public static void Main()
{
Run();
}
[PermissionSetAttribute(SecurityAction.Demand, Name = "Full Trust")]
public static void Run()
{
// Get a WSDL file describing a service.
ServiceDescription description = ServiceDescription.Read("service.wsdl");
// Initialize a service description importer.
ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
importer.ProtocolName = "Soap12"; // Use SOAP 1.2.
importer.AddServiceDescription(description,null,null);
// Report on the service descriptions.
Console.WriteLine("Importing {0} service descriptions with {1} associated schemas.",
importer.ServiceDescriptions.Count, importer.Schemas.Count);
// 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 unit = new CodeCompileUnit();
unit.Namespaces.Add(nmspace);
// Import the service into the Code-DOM tree. This creates proxy code
// that uses the service.
ServiceDescriptionImportWarnings warning = importer.Import(nmspace,unit);
if (warning == 0)
{
// Generate and print the proxy code in C#.
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
provider.GenerateCodeFromCompileUnit(unit, Console.Out, new CodeGeneratorOptions() );
}
else
{
// Print an error message.
Console.WriteLine(warning);
}
}
}
Hinweise
Die Schnittstelle zu einem XML-Webdienst wird in der Regel durch eine WSDL-Datei (Web Services Description Language) beschrieben. Um beispielsweise eine WSDL-Beschreibung eines Webdiensts mit ASP.NET verfügbar http://localhost/service.asmx
zu erhalten, navigieren Sie einfach zu http://localhost/service.asmx?WSDL
.
Mit der ServiceDescriptionImporter Klasse können Sie die in einer WSDL-Beschreibung enthaltenen Informationen einfach in ein System.CodeDom.CodeCompileUnit Objekt importieren. Indem Sie den Wert des Parameters anpassen, können Sie entweder ServiceDescriptionImporter eine Instanz anweisen, um eine Clientproxyklasse zu generieren, die die Funktionalität des Style Webdiensts bereitstellt, indem Sie ihn transparent aufrufen oder eine abstrakte Klasse generieren, die die Funktionalität des Webdiensts ohne Implementierung kapselt.
Der Code im resultierenden CodeCompileUnit Objekt kann dann direkt aufgerufen oder in die Sprache Ihrer Wahl exportiert werden.
Konstruktoren
ServiceDescriptionImporter() |
Initialisiert eine neue Instanz der ServiceDescriptionImporter-Klasse. |
Eigenschaften
CodeGenerationOptions |
Ruft verschiedene Optionen für die Codegenerierung ab oder legt diese fest. |
CodeGenerator |
Ruft den vom Dienstbeschreibungsimporter verwendeten Code-Generator auf oder legt diesen fest. |
ProtocolName |
Ruft das Protokoll für den Zugriff auf die beschriebenen XML-Webdienste ab oder legt dieses fest. |
Schemas |
Ruft die von der XmlSchemas-Eigenschaft verwendeten ServiceDescriptions ab. |
ServiceDescriptions |
Ruft die Auflistung zu importierender ServiceDescription-Instanzen ab. |
Style |
Ruft einen Wert ab, der den Typ des beim Import von ServiceDescriptions-Werten generierten Codes (Client oder Server) bestimmt, oder legt diesen fest. |
Methoden
AddServiceDescription(ServiceDescription, String, String) |
Fügt die angegebene ServiceDescription der Auflistung zu importierender ServiceDescriptions-Werte hinzu. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions) |
Kompiliert eine Auflistung der Webverweise, um einen Clientproxy oder einen Serverstub zu erzeugen. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Import(CodeNamespace, CodeCompileUnit) |
Importiert die angegebenen ServiceDescriptions-Werte, die Code generieren wie von der Style-Eigenschaft angegeben. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |