dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Прокси-классы клиента сервиса WCF

Останнє повідомлення 27-02-2007, 9:31 від Indigo. 4 відповіді.
Сортувати: Попереднє Наступне
  •  26-02-2007, 7:51 2509

    Прокси-классы клиента сервиса WCF

    В сервисе WCF в качестве DataContract использовал самый обычный класс (кучка приватных полей, обернутых в public свойства, public конструктор без параметров). Когда в программе-клиенте поставил service reference на этот сервис, то в сгенерированном коде образовался такой класс:

     

    <FONT size=2>

        <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0"),  _
         System.Runtime.Serialization.DataContractAttribute([Namespace]:="<A href="http://schemas.datacontract.org/2004/07/">http://schemas.datacontract.org/2004/07/</A>"),  _
         System.SerializableAttribute()>  _
        Partial Public Class Product
            Inherits Object
            Implements System.Runtime.Serialization.IExtensibleDataObject
           
            <System.NonSerializedAttribute()>  _
            Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
           
            Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
                Get
                    Return Me.extensionDataField
                End Get
                Set
                    Me.extensionDataField = value
                End Set
            End Property
        End Class</FONT>

    <FONT color=#0000ff size=2></FONT>

     

    Возникает два вопроса:

    1. Как этот ExtensionDataObject можно применять на деле (доставать оттуда информацию и класть обратно)?

    2. Как можно сделать так, чтобы в клиенте формировался нормальный код класса? Может вместо класса лучше структуры использовать?

    Помічено як:
  •  26-02-2007, 9:24 2513 у відповідь на 2509

    Re: Прокси-классы клиента сервиса WCF

    1) ExtensionDataObject це чора дірка Smile. Це спеціальна структура в яку рантайм закидає все що незрозумів, а тому в неїї нама можливості, а ні писати, а ні читати;

    2) Щось не гаразд, воно повинно нормальні проксі генерувати. Якщо є можливість наведіть код з серверного боку, або WSDL;


    MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
    Помічено як: ,
  •  26-02-2007, 10:17 2514 у відповідь на 2513

    Re: Прокси-классы клиента сервиса WCF

    <DataContract()> _
    Public Class Product
        Private _ID As Int32
        Private _CategoryID As Int32
        Private _ItemID As String
        Private _ItemCode As String
        Private _ItemText As String
        Private _ItemsTotal As String
        Private _Price As Double
        Private _Warr As String
        Private _Old As Boolean
        Private _DateLastUpdated As Date

        Public Sub New()

        End Sub

        Public Property ID() As Int32
            Get
                Return _ID
            End Get
            Set(ByVal value As Int32)
                _ID = value
            End Set
        End Property

        Public Property CategoryID() As Int32
            Get
                Return _CategoryID
            End Get
            Set(ByVal value As Int32)
                _CategoryID = value
            End Set
        End Property

        Public Property ItemID() As String
            Get
                Return _ItemID
            End Get
            Set(ByVal value As String)
                _ItemID = value
            End Set
        End Property

        Public Property ItemCode() As String
            Get
                Return _ItemCode
            End Get
            Set(ByVal value As String)
                _ItemCode = value
            End Set
        End Property

        Public Property ItemText() As String
            Get
                Return _ItemText
            End Get
            Set(ByVal value As String)
                _ItemText = value
            End Set
        End Property

        Public Property ItemsTotal() As String
            Get
                Return _ItemsTotal
            End Get
            Set(ByVal value As String)
                _ItemsTotal = value
            End Set
        End Property

        Public Property Price() As Double
            Get
                Return _Price
            End Get
            Set(ByVal value As Double)
                _Price = value
            End Set
        End Property

        Public Property Warr() As String
            Get
                Return _Warr
            End Get
            Set(ByVal value As String)
                _Warr = value
            End Set
        End Property

        Public Property Old() As Boolean
            Get
                Return _Old
            End Get
            Set(ByVal value As Boolean)
                _Old = value
            End Set
        End Property

        Public Property DateLastUpdated() As Date
            Get
                Return _DateLastUpdated
            End Get
            Set(ByVal value As Date)
                _DateLastUpdated = value
            End Set
        End Property

    End Class

     

    Если можно, пожалуйста, на русском.. или английском... А-то я москаль, мне трудно понимать :)

  •  27-02-2007, 2:56 2517 у відповідь на 2514

    Re: Прокси-классы клиента сервиса WCF



     <Runtime.Serialization.DataMember()> Public Property ID() As Int32
            Get
                Return _ID
            End Get
            Set(ByVal value As Int32)
                _ID = value
            End Set
        End Property

    Just decorate your properties with DataMember attribute.


    MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
  •  27-02-2007, 9:31 2525 у відповідь на 2517

    Re: Прокси-классы клиента сервиса WCF

    Спасибо, теперь всё замечательно.
Переглядати як новосний Блог RSS в XML