Estoy tratando de agregar serialización XML a una estructura de clase bastante trivial en C#. En esencia, hay una sola instancia de una clase raíz (llámese AClass), que contiene una lista de varios casos de alguna otra clase (lo llaman AnotherClass):Serialize List <> de clases declaradas con modificador interno?
[XmlRoot("RootNode")]
public class AClass {
[XmlElement("ListNode")]
internal List otherObjects { get; set; }
}
public class AnotherClass {
[XmlAttribute("Name")]
internal string name { get; set; }
}
Cuando seria, me gustaría tanto para éstos clases que se serializarán juntas, es decir, si serializo AClass, su lista de AnotherClass también se serializa (vea this question).
Tengo esta trabajando sobre todo, pero el problema es que durante la serialización, XmlSerializer sólo parece querer tratar con public
propiedades de la clase - que no serializa AnotherClass en absoluto si la lista se declara internal
.
he intentado hacer partes internas de la asamblea visible para el serializador:
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("System.Xml")]
Eso no parece hacer nada. ¿Hay alguna manera de que pueda hacer que XmlSerializer serialice recursivamente listas de objetos que están declarados como internos?
+1 para la pregunta porque se supone que las propiedades tienen que ser públicas * porque eso es lo que nos han dicho *. A veces pienso que muchos de nosotros nos detenemos en el punto en que nos dicen que no podemos hacer algo sin pedir alternativas. – IAbstract