Mam bibliotekę, która zmienia się w CF.NET & .NET, ale serializacja różni się między nimi. W rezultacie plik XML wygenerowany w CF.NET nie jest czytelny w środowisku .NET i jest to dla mnie duży problem!XmlSerializer różni się .NET 3.5 i CF.NET 3.5
Oto próbka kodu:
[Serializable, XmlRoot("config")]
public sealed class RemoteHost : IEquatable<RemoteHost>
{
// ...
}
public class Program
{
public static void Main()
{
RemoteHost host = new RemoteHost("A");
List<RemoteHost> hosts = new List<RemoteHost>();
hosts.Add(host);
XmlSerializer ser = new XmlSerializer(typeof(List<RemoteHost>));
ser.Serialize(Console.Out, hosts);
}
}
CF.NET xml:
<?xml version="1.0"?>
<ArrayOfConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<config Name="A">
</config>
</ArrayOfConfig>
NET xml
<?xml version="1.0" encoding="ibm850"?>
<ArrayOfRemoteHost xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<RemoteHost Name="A">
</RemoteHost>
</ArrayOfRemoteHost>
Jak mogę zmodyfikować swój program w celu wytworzenia tej samej XML?
Arghhhhhh ... Robi w ten sposób Potrzebuję zrestrukturyzować cały mój model biznesowy ... wyjście binarne? –
@Arnaud - samo dodanie wrappera w momencie serializacji tak naprawdę nie zmienia całego modelu. –
Muszę dodać wszystkie RemoteHost do MyRoot, jeśli chcę je serializować, zobaczę ... –