ServiceDescriptionImporter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Expose un moyen de générer des classes proxy client pour les services Web XML.
public ref class ServiceDescriptionImporter
public class ServiceDescriptionImporter
type ServiceDescriptionImporter = class
Public Class ServiceDescriptionImporter
- Héritage
-
ServiceDescriptionImporter
Exemples
L’exemple suivant illustre l’utilisation de la ServiceDescriptionImporter classe pour générer du code client proxy qui appelle un service web XML décrit par un fichier 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);
}
}
}
Remarques
L’interface d’un service web XML est généralement décrite par un fichier WSDL (Web Services Description Language). Par exemple, pour obtenir une description WSDL d’un service Web à l’aide de ASP.NET exposée à http://localhost/service.asmx, accédez simplement à http://localhost/service.asmx?WSDL.
La ServiceDescriptionImporter classe vous permet d’importer facilement les informations contenues dans une description WSDL dans un System.CodeDom.CodeCompileUnit objet. En ajustant la valeur du Style paramètre, vous pouvez demander à une ServiceDescriptionImporter instance de générer une classe proxy cliente qui fournit les fonctionnalités du service Web en l’appelant de manière transparente ou de générer une classe abstraite qui encapsule les fonctionnalités du service Web sans l’implémenter.
Le code de l’objet résultant CodeCompileUnit peut ensuite être appelé directement ou exporté dans la langue de votre choix.
Important
N’utilisez ServiceDescriptionImporter pas d’entrée non approuvée. L’importation d’un ServiceDescription à partir de sources non approuvées peut entraîner une génération de code qui accède à des URL arbitraires ou instancie des types de .NET arbitraires, ce qui peut entraîner des vulnérabilités de sécurité.
Constructeurs
| Nom | Description |
|---|---|
| ServiceDescriptionImporter() |
Initialise une nouvelle instance de la classe ServiceDescriptionImporter. |
Propriétés
| Nom | Description |
|---|---|
| CodeGenerationOptions |
Obtient ou définit différentes options pour la génération de code. |
| CodeGenerator |
Obtient ou définit le générateur de code utilisé par l’importateur de description du service. |
| ProtocolName |
Obtient ou définit le protocole utilisé pour accéder aux services Web XML décrits. |
| Schemas |
Obtient l’objet XmlSchemas utilisé par la ServiceDescriptions propriété. |
| ServiceDescriptions |
Obtient la collection d’instances ServiceDescription à importer. |
| Style |
Obtient ou définit une valeur qui détermine le style de code (client ou serveur) généré lorsque les ServiceDescriptions valeurs sont importées. |
Méthodes
| Nom | Description |
|---|---|
| AddServiceDescription(ServiceDescription, String, String) |
Ajoute la valeur spécifiée ServiceDescription à la collection de ServiceDescriptions valeurs à importer. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GenerateWebReferences(WebReferenceCollection, CodeDomProvider, CodeCompileUnit, WebReferenceOptions) |
Compile une collection de références Web pour produire un proxy client ou un stub de serveur. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Import(CodeNamespace, CodeCompileUnit) |
Importe les valeurs spécifiées ServiceDescriptions , qui génèrent du code tel que spécifié par la Style propriété. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |