2012-10-05 8 views
9

Ich verwende Azure Cache-Vorschau und muss einige Klassen Serializable machen.Nachteil der Klasse zu Serializable

Gibt es einen Nachteil der Klasse Serializable - wie Leistungsproblem?

[Serializable] 
public class MyClass {} 

Ich habe einige verwandte Fragen, aber sie sind nicht über Nachteile.

  1. Are all .NET exceptions serializable?

  2. Drawbacks of marking a class as Serializable

Vielen Dank im Voraus

+1

Einziger Nachteil, den ich festgestellt habe, ist, dass einige Obfuscatoren daran gehindert werden, den Code zu verschleiern. Wenn die Klasse als serialisierbar gekennzeichnet ist, bleiben die Namen unverändert. – Rob

Antwort

8

Nein, es gibt keinen intrinsischen Aufwand einfach in als [Serializable] markiert werden. Das einzige Problem, das ich haben würde, ist, dass BinaryFormatter und NetDataContractSerializer lausige Serialisierer sind, und die meisten anderen Serialisierer sind nicht an diesem Flag interessiert (ok, ich kann voreingenommen sein)

5

Angenommen, Sie sprechen über die Kosten der Verwendung der Serializable Attribut eher als der eigentliche Serialisierungsprozess, ein Nachteil wäre, dass eine dritte Partei normalerweise davon ausgehen würde, dass die Klasse serialisierbar ist. Obwohl dies der Fall sein mag, wenn Sie es nur serialisierbar markieren (und wenn die Möglichkeit besteht, dass eine dritte Partei damit interagiert), sollten Sie wahrscheinlich Zeit investieren, um sicherzustellen, dass die Klasse geeignet ist serialisiert werden. Es handelt sich also eher um einen Ressourcen-Kompromiss als um einen technischen Kompromiss.

Von einem technischen Standpunkt aus, wie Marc Gravell sagte, wird nur die Verwendung des Attributs keinen Overhead haben.

Verwandte Themen