Проблема сериализации WCF, ошибка говорит о том, что тип должен быть помечен с помощью DataContractAttribute, но это уже - PullRequest
0 голосов
/ 16 июля 2010

Тип 'ProblemType' не может быть сериализован.Попробуйте пометить его атрибутом DataContractAttribute и пометить все его элементы, которые вы хотите сериализовать, атрибутом DataMemberAttribute.См. Документацию по Microsoft .NET Framework для других поддерживаемых типов.

У меня есть класс с очень небольшим количеством в нем.Когда я пытаюсь сериализовать класс, содержащий его, я получаю ошибку атрибута контракта данных, даже если тип проблемы отмечен.

Imports System
Imports System.Runtime.Serialization

<DataContractAttribute()> _
Public Class ProblemType
   Implements ICloneable

     private _serializablePropertyBacking as byte

    <DataMemberAttribute()> _
    Public Property SerializableProperty() As Byte
    Get
        Return _serializablePropertyBacking 
    End Get
    Set(ByVal Value As Byte)
        _serializablePropertyBacking = Value
    End Set
    End Property

    Public Sub New()

    End Sub

    Public Sub New(byval option as boolean)
        If option Then
            _serializableProperty = 1
        End If
    End Sub
End Class

Что я могу сделать, чтобы исправить эту ошибку?

1 Ответ

0 голосов
/ 16 июля 2010

Вы должны сделать вспомогательное поле атрибутом контракта данных, а не тем свойством, которое его использует.

Imports System
Imports System.Runtime.Serialization

<DataContractAttribute()> _
Public Class ProblemType
   Implements ICloneable

     <DataMemberAttribute()> _
     private _serializablePropertyBacking as byte


    Public Property SerializableProperty() As Byte
    Get
        Return _serializablePropertyBacking 
    End Get
    Set(ByVal Value As Byte)
        _serializablePropertyBacking = Value
    End Set
    End Property

    Public Sub New()

    End Sub

    Public Sub New(byval option as boolean)
        If option Then
            _serializableProperty = 1
        End If
    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...