Procédure : lier un service web à l’aide du composant BindingSource de Windows FormsHow to: Bind to a Web Service Using the Windows Forms BindingSource

Si vous voulez lier un contrôle Windows Forms aux résultats obtenus à partir d'un appel à un service web XML, vous pouvez utiliser un composant BindingSource.If you want to bind a Windows Form control to the results obtained from calling an XML Web service, you can use a BindingSource component. Cette procédure est similaire à celle d'une liaison d'un composant BindingSource à un type.This procedure is similar to binding a BindingSource component to a type. Vous devez créer un proxy côté client qui contienne les méthodes et les types exposés par le service web.You must create a client-side proxy that contains the methods and types exposed by the Web service. Vous générez un proxy côté client à partir du service web (.asmx) lui-même ou à partir de son fichier WSDL.You generate a client-side proxy from the Web service (.asmx) itself, or its Web Services Description Language (WSDL) file. En outre, votre proxy côté client doit exposer les champs de types complexes utilisés par le service web en tant que propriétés publiques.Additionally, your client-side proxy must expose the fields of complex types used by the Web service as public properties. Vous pouvez ensuite lier la BindingSource à l'un des types exposés dans le proxy du service web.You then bind the BindingSource to one of the types exposed in the Web service proxy.

Pour créer un proxy côté client et créer des liaisons à celui-ciTo create and bind to a client-side proxy

  1. Créez un formulaire Windows dans le répertoire de votre choix, avec un espace de noms approprié.Create a Windows Form in the directory of your choice, with an appropriate namespace.

  2. Ajoutez un composant BindingSource au formulaire.Add a BindingSource component to the form.

  3. Ouvrez l’invite de commandes du Kit de développement logiciel (SDK) Windows et naviguer dans le même répertoire où se trouve votre formulaire.Open the Windows Software Development Kit (SDK) command prompt, and navigate to the same directory that your form is located in.

  4. À l’aide de l’outil WSDL, entrez wsdl et l’URL du fichier .asmx ou WSDL du service web, suivi de l’espace de noms de votre application, et éventuellement le langage utilisé.Using the WSDL tool, enter wsdl and the URL for the .asmx or WSDL file for the Web service, followed by the namespace of your application, and optionally the language you are working in.

    L’exemple de code suivant utilise le service Web situé à http://webservices.eraserver.net/zipcoderesolver/zipcoderesolver.asmx.The following code example uses the Web service located at http://webservices.eraserver.net/zipcoderesolver/zipcoderesolver.asmx. Par exemple, pour un type C# wsdl http://webservices.eraserver.net.zipcoderesolver/zipcoderesolver.asmx /n:BindToWebService ou pour un type Visual Basic wsdl http://webservices.eraserver.net.zipcoderesolver/zipcoderesolver.asmx /n:BindToWebService /language:VB.For example, for C# type wsdl http://webservices.eraserver.net.zipcoderesolver/zipcoderesolver.asmx /n:BindToWebService, or for Visual Basic type wsdl http://webservices.eraserver.net.zipcoderesolver/zipcoderesolver.asmx /n:BindToWebService /language:VB. Le fait de passer le chemin d’accès en tant qu’argument à l’outil WSDL génère un proxy côté client dans le même répertoire et le même espace de noms que votre application, dans le langage spécifié.Passing the path as an argument to the WSDL tool will generate a client-side proxy in the same directory and namespace as your application, in the specified language. Si vous utilisez Visual Studio, ajoutez le fichier à votre projet.If you are using Visual Studio, add the file to your project.

  5. Sélectionnez un type dans le proxy côté client avec lequel créer une liaison.Select a type in the client-side proxy to bind to.

    Il s'agit généralement d'un type retourné par une méthode fournie par le service web.This is typically a type returned by a method offered by the Web service. Les champs du type choisi doivent être exposés en tant que propriétés publiques pour la liaison.The fields of the chosen type must be exposed as public properties for binding purposes.

        [System::SerializableAttribute, System::Xml::Serialization::XmlTypeAttribute(
            Namespace="http://webservices.eraserver.net/")]
        public ref class USPSAddress
        {
    
    private:
            String^ streetField;
    
            String^ cityField;
    
            String^ stateField;
    
            String^ shortZIPField;
    
            String^ fullZIPField;
    
    
    public:
            property String^ Street    
            {
                String^ get()
                {
                    return this->streetField;
                }
                void set( String^ value )
                {
                    this->streetField = value;
                }
            }
    
    
            property String^ City    
            {
                String^ get()
                {
                    return this->cityField;
                }
                void set( String^ value )
                {
                    this->cityField = value;
                }
            }
            property String^ State    
            {
                String^ get()
                {
                    return this->stateField;
                }
                void set( String^ value )
                {
                    this->stateField = value;
                }
            }
    
            property String^ ShortZIP    
            {
                String^ get()
                {
                    return this->shortZIPField;
                }
                void set( String^ value )
                {
                    this->shortZIPField = value;
                }
            }
    
            property String^ FullZIP    
            {
                String^ get()
                {
                    return this->fullZIPField;
                }
                void set( String^ value )
                {
                    this->fullZIPField = value;
                }
            }
        };
    
    [System.SerializableAttribute, System.Xml.Serialization.XmlTypeAttribute(
        Namespace="http://webservices.eraserver.net/")]
    public class USPSAddress
    {
    
        private string streetField;
    
        private string cityField;
    
        private string stateField;
    
        private string shortZIPField;
    
        private string fullZIPField;
    
    
        public string Street    
        {
            get
            {
                return this.streetField;
            }
            set
            {
                this.streetField = value;
            }
        }
    
    
        public string City    
        {
            get
            {
                return this.cityField;
            }
            set
            {
                this.cityField = value;
            }
        }
    
        public string State    
        {
            get
            {
                return this.stateField;
            }
            set
            {
                this.stateField = value;
            }
        }
    
    
        public string ShortZIP    
        {
            get
            {
                return this.shortZIPField;
            }
            set
            {
                this.shortZIPField = value;
            }
        }
    
    
        public string FullZIP    
        {
            get
            {
                return this.fullZIPField;
            }
            set
            {
                this.fullZIPField = value;
            }
        }
    }
    
    <System.SerializableAttribute(), _
     System.Xml.Serialization.XmlTypeAttribute( _
        [Namespace]:="http://webservices.eraserver.net/")> _
    Public Class USPSAddress
    
        Private streetField As String
    
        Private cityField As String
    
        Private stateField As String
    
        Private shortZIPField As String
    
        Private fullZIPField As String
    
    
        Public Property Street() As String
            Get
                Return Me.streetField
            End Get
            Set(ByVal value As String)
                Me.streetField = value
            End Set
        End Property
    
    
        Public Property City() As String
            Get
                Return Me.cityField
            End Get
            Set(ByVal value As String)
                Me.cityField = value
            End Set
        End Property
    
        Public Property State() As String
            Get
                Return Me.stateField
            End Get
            Set(ByVal value As String)
                Me.stateField = value
            End Set
        End Property
    
    
        Public Property ShortZIP() As String
            Get
                Return Me.shortZIPField
            End Get
            Set(ByVal value As String)
                Me.shortZIPField = value
            End Set
        End Property
    
    
        Public Property FullZIP() As String
            Get
                Return Me.fullZIPField
            End Get
            Set(ByVal value As String)
                Me.fullZIPField = value
            End Set
        End Property
    End Class
    
  6. Définissez la propriété DataSource de BindingSource sur le type contenu dans le proxy côté client du service web.Set the DataSource property of the BindingSource to the type you want that is contained in the Web service client-side proxy.

    BindingSource1->DataSource = USPSAddress::typeid;
    
    BindingSource1.DataSource = typeof(USPSAddress);
    
    BindingSource1.DataSource = GetType(USPSAddress)
    

Pour lier des contrôles à une BindingSource liée à un service webTo bind controls to the BindingSource that is bound to a Web service

  • Liez des contrôles à BindingSource, en passant la propriété publique du type de service web de votre choix en tant que paramètre.Bind controls to the BindingSource, passing the public property of the Web service type that you want as a parameter.

    textBox1->DataBindings->Add("Text", this->BindingSource1, "FullZIP", true);
    
    textBox1.DataBindings.Add("Text", this.BindingSource1, "FullZIP", true);
    
    textBox1.DataBindings.Add("Text", Me.BindingSource1, "FullZIP", True)
    

ExempleExample

L'exemple de code suivant montre comment lier un composant BindingSource à un service web, puis comment lier une zone de texte au composant BindingSource.The following code example demonstrates how to bind a BindingSource component to a Web service, and then how to bind a text box to the BindingSource component. Quand vous cliquez sur le bouton, une méthode de service web est appelée et les résultats s'affichent dans textbox1.When you click the button, a Web service method is called and the results will appear in textbox1.

#using <System.Windows.Forms.dll>
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Web.Services.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Collections::Generic;
using namespace System::ComponentModel;
using namespace System::Drawing;
using namespace System::Windows::Forms;
 
namespace BindToWebService {

    [System::SerializableAttribute, System::Xml::Serialization::XmlTypeAttribute(
        Namespace="http://webservices.eraserver.net/")]
    public ref class USPSAddress
    {

private:
        String^ streetField;

        String^ cityField;

        String^ stateField;

        String^ shortZIPField;

        String^ fullZIPField;


public:
        property String^ Street    
        {
            String^ get()
            {
                return this->streetField;
            }
            void set( String^ value )
            {
                this->streetField = value;
            }
        }


        property String^ City    
        {
            String^ get()
            {
                return this->cityField;
            }
            void set( String^ value )
            {
                this->cityField = value;
            }
        }
        property String^ State    
        {
            String^ get()
            {
                return this->stateField;
            }
            void set( String^ value )
            {
                this->stateField = value;
            }
        }

        property String^ ShortZIP    
        {
            String^ get()
            {
                return this->shortZIPField;
            }
            void set( String^ value )
            {
                this->shortZIPField = value;
            }
        }

        property String^ FullZIP    
        {
            String^ get()
            {
                return this->fullZIPField;
            }
            void set( String^ value )
            {
                this->fullZIPField = value;
            }
        }
    };


    [System::Web::Services::WebServiceBindingAttribute(Name="ZipCodeResolverSoap",
        Namespace="http://webservices.eraserver.net/")]
    public ref class ZipCodeResolver:
        public System::Web::Services::Protocols::SoapHttpClientProtocol

    {
        
public:
        ZipCodeResolver() : SoapHttpClientProtocol()
        {        
            this->Url = 
                "http://webservices.eraserver.net/zipcoderesolver/zipcoderesolver.asmx";
        }

    
        //''<remarks/>
        [System::Web::Services::Protocols::SoapDocumentMethodAttribute
            ("http://webservices.eraserver.net/CorrectedAddressXml", 
            RequestNamespace="http://webservices.eraserver.net/", 
            ResponseNamespace="http://webservices.eraserver.net/", 
            Use=System::Web::Services::Description::SoapBindingUse::Literal, 
            ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)]
        USPSAddress^ CorrectedAddressXml(String^ accessCode, 
            String^ address, String^ city, String^ state)
        {
            array<Object^>^ results = this->Invoke("CorrectedAddressXml", 
                gcnew array<Object^>{accessCode, address, city, state});
            return ((USPSAddress^) results[0]);
        }

        //''<remarks/>
        System::IAsyncResult^ BeginCorrectedAddressXml(String^ accessCode,
            String^ address, String^ city, String^ state, 
            System::AsyncCallback^ callback, Object^ asyncState)
        {

            return this->BeginInvoke("CorrectedAddressXml", 
                gcnew array<Object^>{accessCode, address, city, state}, callback, asyncState);
        }


        USPSAddress^ EndCorrectedAddressXml(System::IAsyncResult^ asyncResult)
        {
            array<Object^>^ results = this->EndInvoke(asyncResult);
            return ((USPSAddress^) results[0]);
        }

    };

    ref class Form1: public Form
    {
public:
        [STAThread]
        static void Main()
        {
            Application::EnableVisualStyles();
            Application::Run(gcnew Form1());
        }

private:
        BindingSource^ BindingSource1;

        TextBox^ textBox1;

        TextBox^ textBox2;

        Button^ button1;


public:
        Form1()
        {
            this->Load += gcnew EventHandler(this, &Form1::Form1_Load);
            textBox1->Location = System::Drawing::Point(118, 131);
            textBox1->ReadOnly = true;
            button1->Location = System::Drawing::Point(133, 60);
            button1->Click += gcnew EventHandler(this, &Form1::button1_Click);
            button1->Text = "Get zipcode";
            ClientSize = System::Drawing::Size(292, 266);
            Controls->Add(this->button1);
            Controls->Add(this->textBox1);
                        BindingSource1 = gcnew BindingSource();
                        textBox1 = gcnew TextBox();
                        textBox2 = gcnew TextBox();
                        button1 = gcnew Button();
        }

private:
        void button1_Click(Object^ sender, EventArgs^ e)
        {
            textBox1->Text = "Calling Web service..";
            ZipCodeResolver^ resolver = gcnew ZipCodeResolver();
            BindingSource1->Add(resolver->CorrectedAddressXml("0",
                    "One Microsoft Way", "Redmond", "WA"));
                        
        }

public:
        void Form1_Load(Object^ sender, EventArgs^ e)
        {
            BindingSource1->DataSource = USPSAddress::typeid;
            textBox1->DataBindings->Add("Text", this->BindingSource1, "FullZIP", true);
        }
    };




    public ref class CorrectedAddressXmlCompletedEventArgs:
    public System::ComponentModel::AsyncCompletedEventArgs

    {
private:
        array<Object^>^ results;

internal:
        CorrectedAddressXmlCompletedEventArgs(array<Object^>^ results,
            System::Exception^ exception, bool cancelled, Object^ userState) :
            AsyncCompletedEventArgs(exception, cancelled, userState)
        {        
            this->results = results;
        }


public:
        property USPSAddress^ Result    
        {
            USPSAddress^ get()
            {
                this->RaiseExceptionIfNecessary();
                return ((USPSAddress^) this->results[0]);
            }
        }

     delegate void CorrectedAddressXmlCompletedEventHandler(Object^ sender,
        CorrectedAddressXmlCompletedEventArgs^ args);

    };
}

int main()
{
    BindToWebService::Form1::Main();
    return 1;
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
 
namespace BindToWebService {
    class Form1: Form

    {
        [STAThread]
        public static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }

        private BindingSource BindingSource1 = new BindingSource();
        private TextBox textBox1 = new TextBox();
        private TextBox textBox2 = new TextBox();
        private Button button1 = new Button();

        public Form1()
        {
            this.Load += new EventHandler(Form1_Load);
            textBox1.Location = new System.Drawing.Point(118, 131);
            textBox1.ReadOnly = true;
            button1.Location = new System.Drawing.Point(133, 60);
            button1.Click += new EventHandler(button1_Click);
            button1.Text = "Get zipcode";
            ClientSize = new System.Drawing.Size(292, 266);
            Controls.Add(this.button1);
            Controls.Add(this.textBox1);
        }

        private void button1_Click(object sender, EventArgs e)
        {

            textBox1.Text = "Calling Web service..";
            ZipCodeResolver resolver = new ZipCodeResolver();
            BindingSource1.Add(resolver.CorrectedAddressXml("0",
                    "One Microsoft Way", "Redmond", "WA"));
                        
        }

        public void Form1_Load(object sender, EventArgs e)
        {
            BindingSource1.DataSource = typeof(USPSAddress);
            textBox1.DataBindings.Add("Text", this.BindingSource1, "FullZIP", true);
        }
    }

    [System.Web.Services.WebServiceBindingAttribute(Name="ZipCodeResolverSoap",
        Namespace="http://webservices.eraserver.net/")]
    public class ZipCodeResolver:
        System.Web.Services.Protocols.SoapHttpClientProtocol

    {
        
        public ZipCodeResolver() : base()
        {        
            this.Url = 
                "http://webservices.eraserver.net/zipcoderesolver/zipcoderesolver.asmx";
        }

    
        //''<remarks/>
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute
            ("http://webservices.eraserver.net/CorrectedAddressXml", 
            RequestNamespace="http://webservices.eraserver.net/", 
            ResponseNamespace="http://webservices.eraserver.net/", 
            Use=System.Web.Services.Description.SoapBindingUse.Literal, 
            ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public USPSAddress CorrectedAddressXml(string accessCode, 
            string address, string city, string state)
        {
            object[] results = this.Invoke("CorrectedAddressXml", 
                new object[]{accessCode, address, city, state});
            return ((USPSAddress) results[0]);
        }

        //''<remarks/>
        public System.IAsyncResult BeginCorrectedAddressXml(string accessCode,
            string address, string city, string state, 
            System.AsyncCallback callback, object asyncState)
        {

            return this.BeginInvoke("CorrectedAddressXml", 
                new object[]{accessCode, address, city, state}, callback, asyncState);
        }


        public USPSAddress EndCorrectedAddressXml(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((USPSAddress) results[0]);
        }

    }


    [System.SerializableAttribute, System.Xml.Serialization.XmlTypeAttribute(
        Namespace="http://webservices.eraserver.net/")]
    public class USPSAddress
    {

        private string streetField;

        private string cityField;

        private string stateField;

        private string shortZIPField;

        private string fullZIPField;


        public string Street    
        {
            get
            {
                return this.streetField;
            }
            set
            {
                this.streetField = value;
            }
        }


        public string City    
        {
            get
            {
                return this.cityField;
            }
            set
            {
                this.cityField = value;
            }
        }

        public string State    
        {
            get
            {
                return this.stateField;
            }
            set
            {
                this.stateField = value;
            }
        }


        public string ShortZIP    
        {
            get
            {
                return this.shortZIPField;
            }
            set
            {
                this.shortZIPField = value;
            }
        }


        public string FullZIP    
        {
            get
            {
                return this.fullZIPField;
            }
            set
            {
                this.fullZIPField = value;
            }
        }
    }

    public delegate void CorrectedAddressXmlCompletedEventHandler(object sender,
        CorrectedAddressXmlCompletedEventArgs args);


    public class CorrectedAddressXmlCompletedEventArgs:
    System.ComponentModel.AsyncCompletedEventArgs

    {
        private object[] results;

        internal CorrectedAddressXmlCompletedEventArgs(object[] results,
            System.Exception exception, bool cancelled, object userState) :
            base(exception, cancelled, userState)
        {        
            this.results = results;
        }


        public USPSAddress Result    
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((USPSAddress) this.results[0]);
            }
        }
    }
 }
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Namespace BindToWebService
    Class Form1
        Inherits Form

        <STAThread()> _
        Shared Sub Main()
            Application.EnableVisualStyles()
            Application.Run(New Form1())
        End Sub

        Private BindingSource1 As New BindingSource()
        Private textBox1 As New TextBox()
        Private textBox2 As New TextBox()
        Private WithEvents button1 As New Button()

        Public Sub New()

            textBox1.Location = New System.Drawing.Point(118, 131)
            textBox1.ReadOnly = True
            button1.Location = New System.Drawing.Point(133, 60)
            button1.Text = "Get zipcode"
            ClientSize = New System.Drawing.Size(292, 266)
            Controls.Add(Me.button1)
            Controls.Add(Me.textBox1)
        End Sub

        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
            Handles button1.Click

            textBox1.Text = "Calling Web service.."
            Dim resolver As New ZipCodeResolver()
            BindingSource1.Add(resolver.CorrectedAddressXml("0", "One Microsoft Way", "Redmond", "WA"))

        End Sub


        Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
            BindingSource1.DataSource = GetType(USPSAddress)
            textBox1.DataBindings.Add("Text", Me.BindingSource1, "FullZIP", True)
        End Sub

    End Class

    <System.Diagnostics.DebuggerStepThroughAttribute(), _
     System.ComponentModel.DesignerCategoryAttribute("code"), _
     System.Web.Services.WebServiceBindingAttribute(Name:="ZipCodeResolverSoap", _
        [Namespace]:="http://webservices.eraserver.net/")> _
    Public Class ZipCodeResolver
        Inherits System.Web.Services.Protocols.SoapHttpClientProtocol

        Private CorrectedAddressXmlOperationCompleted As _
            System.Threading.SendOrPostCallback


        Public Sub New()
            MyBase.New()
            Me.Url = _
                "http://webservices.eraserver.net/zipcoderesolver/zipcoderesolver.asmx"
        End Sub


        Public Event CorrectedAddressXmlCompleted As _
            CorrectedAddressXmlCompletedEventHandler

        <System.Web.Services.Protocols.SoapDocumentMethodAttribute( _
            "http://webservices.eraserver.net/CorrectedAddressXml", _
            RequestNamespace:="http://webservices.eraserver.net/", _
            ResponseNamespace:="http://webservices.eraserver.net/", _
            Use:=System.Web.Services.Description.SoapBindingUse.Literal, _
            ParameterStyle:=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)> _
        Public Function CorrectedAddressXml(ByVal accessCode As String, _
            ByVal address As String, ByVal city As String, ByVal state As String) _
            As USPSAddress
            Dim results() As Object = Me.Invoke("CorrectedAddressXml", _
                New Object() {accessCode, address, city, state})
            Return CType(results(0), USPSAddress)
        End Function

        '''<remarks/>
        Public Function BeginCorrectedAddressXml(ByVal accessCode As String, _
            ByVal address As String, ByVal city As String, ByVal state As String, _
            ByVal callback As System.AsyncCallback, ByVal asyncState As Object) _
            As System.IAsyncResult

            Return Me.BeginInvoke("CorrectedAddressXml", _
                New Object() {accessCode, address, city, state}, callback, asyncState)
        End Function

        Public Function EndCorrectedAddressXml(ByVal asyncResult _
            As System.IAsyncResult) As USPSAddress
            Dim results() As Object = Me.EndInvoke(asyncResult)
            Return CType(results(0), USPSAddress)
        End Function
    End Class

    <System.SerializableAttribute(), _
     System.Xml.Serialization.XmlTypeAttribute( _
        [Namespace]:="http://webservices.eraserver.net/")> _
    Public Class USPSAddress

        Private streetField As String

        Private cityField As String

        Private stateField As String

        Private shortZIPField As String

        Private fullZIPField As String


        Public Property Street() As String
            Get
                Return Me.streetField
            End Get
            Set(ByVal value As String)
                Me.streetField = value
            End Set
        End Property


        Public Property City() As String
            Get
                Return Me.cityField
            End Get
            Set(ByVal value As String)
                Me.cityField = value
            End Set
        End Property

        Public Property State() As String
            Get
                Return Me.stateField
            End Get
            Set(ByVal value As String)
                Me.stateField = value
            End Set
        End Property


        Public Property ShortZIP() As String
            Get
                Return Me.shortZIPField
            End Get
            Set(ByVal value As String)
                Me.shortZIPField = value
            End Set
        End Property


        Public Property FullZIP() As String
            Get
                Return Me.fullZIPField
            End Get
            Set(ByVal value As String)
                Me.fullZIPField = value
            End Set
        End Property
    End Class

    Public Delegate Sub CorrectedAddressXmlCompletedEventHandler(ByVal sender As Object, _
         ByVal args As CorrectedAddressXmlCompletedEventArgs)

    Public Class CorrectedAddressXmlCompletedEventArgs
        Inherits System.ComponentModel.AsyncCompletedEventArgs

        Private results() As Object

        Friend Sub New(ByVal results() As Object, ByVal exception As System.Exception, _
            ByVal cancelled As Boolean, ByVal userState As Object)
            MyBase.New(exception, cancelled, userState)
            Me.results = results
        End Sub

        Public ReadOnly Property Result() As USPSAddress
            Get
                Me.RaiseExceptionIfNecessary()
                Return CType(Me.results(0), USPSAddress)
            End Get
        End Property
    End Class

End Namespace

Compilation du codeCompiling the Code

Il s'agit d'un exemple complet qui inclut une méthode Main et une version raccourcie du code du proxy côté client.This is a complete example that includes a Main method, and a shortened version of client-side proxy code.

Cet exemple nécessite :This example requires:

  • Des références aux assemblys System, System.Drawing, System.Web.Services, System.Windows.Forms et System.Xml.References to the System, System.Drawing, System.Web.Services, System.Windows.Forms and System.Xml assemblies.

Voir aussiSee also