2009-09-10 15 views

Odpowiedz

23

Wystąpienia klas atrybutów są tworzone tylko wtedy, gdy są po raz pierwszy używane. Jeśli nie wykonasz żadnej serializacji tej konkretnej klasy, konstruktor SerializableAttribute() nigdy nie zostanie wywołany, dlatego nie spowoduje żadnych problemów z wydajnością.

Oto ciekawy artykuł na temat konstruktorów atrybut: http://www.codingonthetrain.com/2008/10/attribute-constructors.html

7

Atrybuty są adnotacje metadanych więc nie dodają wagi do klasy w czasie wykonywania, chyba że są one interpretowane przez program w pewien sposób, który sprawia, że traktuj klasę inaczej.

[Serializable] to po prostu atrybut znacznika używany jako konwencja wskazująca, że ​​klasa jest serializowalna, nie ma żadnego efektu, a środowisko wykonawcze nie traktuje klas w żaden szczególny sposób.