ServiceDescriptionImporter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zveřejňuje prostředek generování klientských proxy tříd pro webové služby XML.
public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
- Dědičnost
-
ServiceDescriptionImporter
Příklady
Následující příklad znázorňuje použití ServiceDescriptionImporter třídy k vygenerování kódu klienta proxy, který volá webovou službu XML popsanou souborem 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);
}
}
}
Poznámky
Rozhraní webové služby XML je obvykle popsáno souborem WSDL (Web Services Description Language). Chcete-li například získat popis WSDL webové služby pomocí ASP.NET vystavené na http://localhost/service.asmx
adrese , jednoduše přejděte na http://localhost/service.asmx?WSDL
.
Třída ServiceDescriptionImporter umožňuje snadno importovat informace obsažené v popisu WSDL do objektu System.CodeDom.CodeCompileUnit . Úpravou hodnoty parametru Style můžete instruovat ServiceDescriptionImporter instanci tak, aby vygenerovala třídu proxy klienta, která poskytuje funkce webové služby transparentním voláním nebo generováním abstraktní třídy, která zapouzdřuje funkce webové služby bez jeho implementace.
Kód ve výsledném CodeCompileUnit objektu se pak může volat přímo nebo exportovat v jazyce podle vašeho výběru.
Konstruktory
ServiceDescriptionImporter() |
Inicializuje novou instanci ServiceDescriptionImporter třídy. |
Vlastnosti
CodeGenerationOptions |
Získá nebo nastaví různé možnosti pro generování kódu. |
CodeGenerator |
Získá nebo nastaví generátor kódu používaný dovozcem popisu služby. |
ProtocolName |
Získá nebo nastaví protokol použitý pro přístup k popsaným webovým službám XML. |
Schemas |
XmlSchemas Získá použitou ServiceDescriptions vlastností. |
ServiceDescriptions |
Získá kolekci ServiceDescription instancí, které se mají importovat. |
Style |
Získá nebo nastaví hodnotu, která určuje styl kódu (klienta nebo serveru), který je generován při importu ServiceDescriptions hodnot. |
Metody
AddServiceDescription(ServiceDescription, String, String) |
Přidá zadaný ServiceDescription do kolekce ServiceDescriptions hodnot, které se mají importovat. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions) |
Zkompiluje kolekci webových odkazů pro vytvoření klientského proxy serveru nebo zástupného kódu serveru. |
GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
Import(CodeNamespace, CodeCompileUnit) |
Importuje zadané ServiceDescriptions hodnoty, které generuje kód určený vlastností Style . |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |