Ho un logger di chiamata che ha lo scopo di registrare tutte le chiamate di metodo insieme ai parametri associati al metodo utilizzando XmlSerializer. Funziona bene per la maggior parte delle chiamate, ma genera un'eccezione per tutti i metodi che hanno un parametro di tipo IEnumerable
.XmlSerializer non serializza IEnumerable
Ad esempio, void MethodWithPlace(Place value)
sarebbe serializzato, ma non lo sarebbe void MethodWithPlace(IEnumerable<Place> value)
.
L'eccezione è
System.NotSupportedException: Impossibile serializzare interfaccia System.Collections.Generic.IEnumerable`1 [[Luogo, prova, Version = 0.0.0.0, Culture = neutral]].
Cosa devo fare per farlo funzionare con questi metodi con IEnumerable
come uno dei suoi parametri?
può sostituire le definizioni dei metodi con un'implementazione concreta di IEnumerable, come ad esempio Lista? –
possibile duplicato di [Impossibile serializzare il parametro di tipo 'System.Linq.Enumerable ...' quando si utilizza WCF, LINQ, JSON] (http://stackoverflow.com/questions/2068897/cannot-serialize-parameter-of-type -system-linq-enumerable-when-using-wcf) – Coincoin
possibile duplicazione di [Serialize Objects using xmlSerializer.Serialize e IEnumerable objects] (http://stackoverflow.com/questions/2729875/serialize-objects-using-xmlserializer-serialize-and-ienumerable-objects) –