Ich habe herausgefunden, dass einige Klassen die [Serializable]
Attribut.
- Was ist das?
- Wann sollte ich es verwenden?
- Welche Art von Leistungen erhalte ich?
Ich habe herausgefunden, dass einige Klassen die [Serializable]
Attribut.
Serialisierung
Serialisierung ist der Prozess der Umwandlung eines Objekts oder einer Reihe von Objekten in einen Datenstrom, im Falle der binären Serialisierung in ein Byte-Array
Verwendungszwecke der Serialisierung
Im Folgenden sind einige nützliche benutzerdefinierte Attribute aufgeführt, die während der Serialisierung eines Objekts verwendet werden
[Serializable] -> Es wird verwendet, wenn wir die Serialisierbarkeit eines Objekts markieren. [NonSerialized] -> Sie wird verwendet, wenn das Feld eines Objekts nicht serialisiert werden soll. [OnSerializing] -> Sie wird verwendet, wenn bei der Serialisierung eines Objekts eine Aktion durchgeführt werden soll. [OnSerialized] -> Es wird verwendet, wenn wir eine Aktion durchführen wollen, nachdem ein Objekt in den Stream serialisiert wurde.
Nachfolgend ein Beispiel für die Serialisierung
[Serializable]
internal class DemoForSerializable
{
internal string Fname = string.Empty;
internal string Lname = string.Empty;
internal Stream SerializeToMS(DemoForSerializable demo)
{
DemoForSerializable objSer = new DemoForSerializable();
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, objSer);
return ms;
}
[OnSerializing]
private void OnSerializing(StreamingContext context) {
Fname = "sheo";
Lname = "Dayal";
}
[OnSerialized]
private void OnSerialized(StreamingContext context)
{
// Do some work after serialized object
}
}
Hier ist der aufrufende Code
class Program
{
string fname = string.Empty;
string Lname = string.Empty;
static void Main(string[] args)
{
DemoForSerializable demo = new DemoForSerializable();
Stream ms = demo.SerializeToMS(demo);
ms.Position = 0;
DemoForSerializable demo1 = new BinaryFormatter().Deserialize(ms) as DemoForSerializable;
Console.WriteLine(demo1.Fname);
Console.WriteLine(demo1.Lname);
Console.ReadLine();
}
}
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.