Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WCF: una dimenticanza in Visual Basic 2005?

Quando si creano progetti basati su Windows Communication Foundation in Visual Basic 2005 (sia nell'edizione Express che in Visual Studio), utilizzando l'apposito modello di progetto, l'IDE si "dimentica" di aggiungere un importante attributo ai membri della classe DataContract1, generata in automatico dal template. Lo scopo di tale classe è quello di dimostrare come i dati, che il servizio espone all'esterno, possano essere scambiati con i client.

Essa è correttamente contrassegnata dall'attributo DataContract (il tipo di contratto che identifica i dati) ma le relative proprietà pubbliche implementate al suo interno devono essere contrassegnate manualmente con l'attributo DataMember, altrimenti il client, una volta referenziato il servizio, non sarà in grado di "vedere" gli oggetti anche se dichiarati Public. Questo perchè, come detto, il modello di progetto per WCF presenta questa inesattezza.

Di seguito riporto il codice corretto della classe dimostrativa del modello, con l'aggiunta degli attributi:

<DataContract()> _
Public Class DataContract1
    Private m_firstName As String
    Private m_lastName As String

    <DataMember()> Public Property FirstName() As String
        Get
            Return m_firstName
        End Get
        Set(ByVal value As String)
            m_firstName = value
        End Set
    End Property

    <DataMember()> Property LastName() As String
        Get
            Return m_lastName
        End Get
        Set(ByVal value As String)
            m_lastName = value
        End Set
    End Property
End Class

Ovviamente, questa dimenticanza non c'è in Visual C# :-) E' importante che vi ricordiate di aggiungere tale attributo sia se utilizzate il modello predefinito, sia se scrivete manualmente le vostre classi.

Alessandro

Print | posted on giovedì 18 ottobre 2007 22:03 | Filed Under [ Windows Communication Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET