В сервисе 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. Как можно сделать так, чтобы в клиенте формировался нормальный код класса? Может вместо класса лучше структуры использовать?