Ho derivato diverse classi da varie eccezioni. Ora vs dà l'avvertimento come nel titolo di questa domanda.Derivante dalle avvertenze delle classi di eccezioni: CA2237: Contrassegna i tipi ISerializable con SerializableAttribute
1. Qualcuno potrebbe spiegare le implicazioni della soppressione di questa regola?
2. Si può spiegare la regola da here dicendo "Non sopprimere un avviso da questa regola per le classi di eccezioni perché devono essere serializzabili per funzionare correttamente tra domini dell'applicazione".?
Grazie.
P.S. Beh, ho una risposta anch'io. In effetti devi contrassegnare le eccezioni come serializzabili. Funzionano bene senza questo attributo nello stesso AppDomain. Tuttavia, se provi a prenderlo da qualche altro dominio, dovrà essere serializzato per superare i limiti dell'app. E questa è la ragione principale per cui ho trovato questo.
Dopo aver letto e giocato con i confini di AppDomain, .NET ha infatti iniziato a dare le proprie eccezioni dicendo che queste classi non hanno [Serializable]. Un aspetto interessante di appDomain.CreateInstance (..., classNameForThisDomain, ...) è che crea ed esegue classNameForThisDomain in un dominio app distinto da quello in cui stiamo eseguendo solo quando questa classe deriva da MarshalByRefObject. Ma se così non fosse, classNameForThisDomain verrà caricato nello stesso appdomain! – Nickolodeon