Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

CA2239: Deserialisierungsmethoden für optionale Felder angeben

TypeName

ProvideDeserializationMethodsForOptionalFields

CheckId

CA2239

Kategorie

Microsoft.Usage

Unterbrechende Änderung

Nicht unterbrechend

Ein Typ verfügt über ein Feld, das mit dem System.Runtime.Serialization.OptionalFieldAttribute-Attribut gekennzeichnet ist, und der Typ gibt keine Methoden für die Deserialisierungsereignisbehandlung an.

Das OptionalFieldAttribute-Attribut hat keine Auswirkungen auf die Serialisierung. Ein mit dem Attribut gekennzeichnetes Feld wird serialisiert. Das Feld wird bei der Deserialisierung jedoch ignoriert und behält den seinem Typ zugeordneten Standardwert bei. Deserialisierungsereignishandler sollten so deklariert werden, dass das Feld während der Deserialisierung festgelegt wird.

Um einen Verstoß gegen diese Regel zu beheben, fügen Sie dem Typ Methoden für die Deserialisierungsereignisbehandlung hinzu.

Eine Warnung dieser Regel kann gefahrlos unterdrückt werden, wenn das Feld während der Deserialisierung ignoriert werden soll.

Im folgenden Beispiel wird ein Typ mit einem optionalen Feld und Methoden für die Deserialisierungsereignisbehandlung veranschaulicht.


using System;
using System.Reflection;
using System.Runtime.Serialization;

[assembly: AssemblyVersionAttribute("2.0.0.0")]
namespace UsageLibrary
{
   [SerializableAttribute]
   public class SerializationEventHandlers
   {
      [OptionalFieldAttribute(VersionAdded = 2)]
      int optionalField = 5;

      [OnDeserializingAttribute]
      void OnDeserializing(StreamingContext context)
      {
         optionalField = 5;
      }

      [OnDeserializedAttribute]
      void OnDeserialized(StreamingContext context)
      {
         // Set optionalField if dependent on other deserialized values.
      }
   }
}


Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.