2011-10-07 11 views
39

Quando scrivo codice come questoNonSerialized sulla proprietà

[XmlIgnore] 
[NonSerialized] 
public List<string> paramFiles { get; set; } 

ottengo il seguente errore:

Attribute 'NonSerialized' is not valid on this declaration type. 
It is only valid on 'field' declarations. 


Se scrivo

[field: NonSerialized] 

ottengo il seguente avviso

'field' is not a valid attribute location for this declaration. 
Valid attribute locations for this declaration are 'property'. 
All attributes in this block will be ignored. 


Se scrivo

[property: NonSerialized] 

ho il seguente errore (di nuovo):

Attribute 'NonSerialized' is not valid on this declaration type. 
It is only valid on 'field' declarations. 


Come posso usare [NonSerialized] su una proprietà?

+0

Possibile duplicato di [Come contrassegnare una proprietà come non serializzabile per json?] (Http://stackoverflow.com/questions/5103200/how-to-mark-a-property-as-non-serializable-for- json) –

risposta

42

bene ... primo errore dire che non si può .. da http://msdn.microsoft.com/en-us/library/system.nonserializedattribute.aspx

[AttributeUsageAttribute(AttributeTargets.Field, Inherited = false)] 
[ComVisibleAttribute(true)] 
public sealed class NonSerializedAttribute : Attribute 

suggerisco campo supporto utilizzando

public List<string> paramFiles { get { return list;} set { list = value; } } 
[NonSerialized] 
private List<string> list; 
+9

L'utilizzo del campo di supporto suggerito non sembra funzionare. La proprietà è ancora in fase di serializzazione. –

+0

Sì, funziona, ma non in ogni classe denominata AaaSerializer. Quale serializzatore stai usando? – wiero

+2

L'attributo corretto è [NonSerialized], non [NonSerializable] –

52

uso semplice:

[XmlIgnore] 
[ScriptIgnore] 
public List<string> paramFiles { get; set; } 

Speriamo che aiuti.

+2

Effettivamente questo funziona anche nello scenario classico del servizio Web ASP.NET nascondendo completamente il nome della proprietà dal consumatore (un grande trucco per chi è bloccato nel progetto pre-WCF) – timmi4sa

+0

grazie mille che è perfetto – Mik1893

+0

Non ho bisogno di usare [ScriptIgnore] per far funzionare questo –

Problemi correlati