protobuf-net enum la sérialisation
Ce qui doit être fait afin de sérialiser les énumérations avec protobuf-net? J'obtiens l'erreur ci-dessous lors de la sérialisation d'une classe ayant un enum la propriété, si la DataMember attribut est supprimé à partir de la déclaration de la propriété, il fonctionne très bien.
"Du système.InvalidOperationException: Seules les données-contrat de classes (et des listes/tableaux
de telles) peuvent être traitées"
Avez-vous un exemple? Cela devrait fonctionner...
Bonjour Marc! Merci pour le post sur deseriazing List<T> à l'aide de Protobuf.net. J'ai eu le même problème. Je vais poster l'exemple ci-dessous.
Juste un heads-up, cette question est en cours de discussion sur meta. Est-il une raison qui vous a roulé la modifier, y compris un MCVE? A votre situation différente de Andrews?
Bonjour Marc! Merci pour le post sur deseriazing List<T> à l'aide de Protobuf.net. J'ai eu le même problème. Je vais poster l'exemple ci-dessous.
Juste un heads-up, cette question est en cours de discussion sur meta. Est-il une raison qui vous a roulé la modifier, y compris un MCVE? A votre situation différente de Andrews?
OriginalL'auteur Kimi | 2010-11-09
Vous devez vous connecter pour publier un commentaire.
Je suspect ils sont en fait 2 scénarios différents, mais en ce qui concerne l'exemple de code ajouté par Andrew, c'est parce qu'il ne peuvent pas comprendre (à l'avance) ce qu'il va faire avec ce qui concerne les valeurs par défaut (par défaut, les données sont traitées en option au niveau du récepteur). Il existe 3 façons de corriger cela:
1: ajouter un enum avec la valeur 0 (car 0 est toujours la CLI valeur par défaut pour les zéros), par exemple
2: dites-lui de la valeur à utiliser par défaut:
3: dites-le moteur qu'il n'a vraiment pas besoin de s'inquiéter à ce sujet, c'est à dire qu'il est va avoir une valeur:
rétroaction. Je vais essayer d'améliorer ça.
Mon problème c'est que nous avons été la sérialisation d'une liste d'objets, et l'une des propriétés n'ont pas IsRequired = true. Je suppose que ce serait bien dans ce cas à inclure un intérieur d'exception.
ok; je vais bidouiller v2 à faire que de plus en plus évident. Dans un sens bien, je suis content, c'était la même question et qu'il est à présent résolu.
Cette réponse s'appliquent toujours à la v2.0.0.480?
OriginalL'auteur Marc Gravell
De l'échantillon:
[DataContract]
. Je n'ai pas vérifié, mais je suppose que cela fonctionne bien si vous supprimez les attributs de la enum?quand je l'ai essayer, l'erreur que j'obtiens est sur le defualt valeur d'enum (est-ce ce que vous voyez?) ce qui n'est pas vraiment la même chose que rapporté par Al. Cependant, j'ai ajouté une réponse (je pense) les adresses question.
OriginalL'auteur Andrew Kalashnikov