Sto cercando di aggiungere la serializzazione XML a una struttura di classe abbastanza banale in C#. In sostanza, c'è una singola istanza di una classe root (lo chiamano AClass), che contiene un elenco di diverse istanze di qualche altra classe (lo chiamano AnotherClass):Serialize List <> delle classi dichiarate con il modificatore interno?
[XmlRoot("RootNode")]
public class AClass {
[XmlElement("ListNode")]
internal List otherObjects { get; set; }
}
public class AnotherClass {
[XmlAttribute("Name")]
internal string name { get; set; }
}
durante la serializzazione, mi piacerebbe per entrambi questi classi da serializzare insieme - cioè, se serializzo AClass, anche la sua lista di AnotherClass viene serializzata (vedi this question).
ho questo per lo più di lavoro, ma il problema è che durante la serializzazione, XmlSerializer sembra solo voler trattare con public
proprietà della classe - non serializzare AnotherClass affatto se la lista è dichiarato internal
.
Ho provato a fare internals del montaggio visibile al serializzatore:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Xml")]
che non sembra fare nulla. C'è un modo per far sì che XmlSerializer serializzi ricorsivamente gli elenchi di oggetti dichiarati interni?
+1 per la domanda perché l'assunto è che le proprietà devono essere pubbliche * perché è quello che ci è stato detto *. A volte penso che molti di noi si fermino al punto in cui ci viene detto che non possiamo fare qualcosa senza chiedere alternative. – IAbstract