ServiceDescriptionImporter Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uwidacznia metodę generowania klas serwera proxy klienta dla usług sieci Web XML.
public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
- Dziedziczenie
-
ServiceDescriptionImporter
Przykłady
Poniższy przykład ilustruje użycie ServiceDescriptionImporter klasy do generowania kodu klienta serwera proxy, który wywołuje usługę sieci Web XML opisaną przez plik WSDL.
#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);
}
}
}
Uwagi
Interfejs usługi sieci Web XML jest zazwyczaj opisywany przez plik WSDL (Web Services Description Language). Aby na przykład uzyskać opis WSDL usługi sieci Web przy użyciu ASP.NET uwidocznionych w lokalizacji http://localhost/service.asmx
, po prostu przejdź do http://localhost/service.asmx?WSDL
adresu .
Klasa ServiceDescriptionImporter umożliwia łatwe importowanie informacji zawartych w opisie System.CodeDom.CodeCompileUnit WSDL do obiektu. Dostosowując wartość parametru Style , można poinstruować ServiceDescriptionImporter wystąpienie, aby wygenerować klasę serwera proxy klienta, która zapewnia funkcjonalność usługi sieci Web przez przezroczyste wywołanie go lub wygenerować klasę abstrakcyjną, która hermetyzuje funkcjonalność usługi sieci Web bez jej zaimplementowania.
Kod w wynikowym CodeCompileUnit obiekcie można następnie wywołać bezpośrednio lub wyeksportować w wybranym języku.
Konstruktory
ServiceDescriptionImporter() |
Inicjuje nowe wystąpienie klasy ServiceDescriptionImporter. |
Właściwości
CodeGenerationOptions |
Pobiera lub ustawia różne opcje generowania kodu. |
CodeGenerator |
Pobiera lub ustawia generator kodu używany przez importera opisu usługi. |
ProtocolName |
Pobiera lub ustawia protokół używany do uzyskiwania dostępu do opisanych usług sieci Web XML. |
Schemas |
Pobiera wartość XmlSchemas używaną ServiceDescriptions przez właściwość . |
ServiceDescriptions |
Pobiera kolekcję ServiceDescription wystąpień do zaimportowania. |
Style |
Pobiera lub ustawia wartość określającą styl kodu (klienta lub serwera), który jest generowany podczas importowania ServiceDescriptions wartości. |
Metody
AddServiceDescription(ServiceDescription, String, String) |
Dodaje określony ServiceDescription element do kolekcji ServiceDescriptions wartości do zaimportowania. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions) |
Kompiluje kolekcję odwołań sieci Web w celu utworzenia serwera proxy klienta lub wycinku serwera. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
Import(CodeNamespace, CodeCompileUnit) |
Importuje określone ServiceDescriptions wartości, które generują kod określony przez Style właściwość. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |