2010-07-16 4 views
0

Le type 'ProblemType' ne peut pas être sérialisé. Pensez à le marquer avec l'attribut DataContractAttribute et à marquer tous les membres que vous souhaitez sérialiser avec l'attribut DataMemberAttribute. Consultez la documentation de Microsoft .NET Framework pour les autres types pris en charge.Problème de sérialisation WCF, le type d'erreur doit être marqué avec DataContractAttribute, mais il est déjà

J'ai une classe avec très peu de choses dedans. Lorsque j'essaie de sérialiser la classe qui le contient, j'obtiens l'erreur d'attribut de contrat de données, même si le type de problème est marqué.

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 

Que puis-je faire pour corriger cette erreur?

Répondre

0

Vous devez définir le champ de sauvegarde comme un attribut de contrat de données, et non comme la propriété qui l'utilise.

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 
+0

obtenez toujours la même erreur. – jkerouac

+0

Essayez de marquer la classe entière comme sérialisable. – flayn

Questions connexes