Cześć,
Mam nadzieję, że nie jest to kolejny problem z rodziny "nie da się" :) Otóż chcę wykonać serializację klasy o takiej definicji:
[System.Serializable]
public class InParameters
{
public InParameters()
{
}
[
System.Xml.Serialization.XmlArray("ElementCollection"), System.Xml.Serialization.XmlArrayItem("Element", typeof(BaseElement))
]
public ElementCollection ElementCollection
{
set
{
this.elementcollection = value;
}
get
{
return this.elementcollection;
}
}
}
gdzie ElementCollection zdefiniowany jest w taki sposób:
public class ElementCollection : System.Collections.Generic.List<BaseElement>
{
public ElementCollection()
{
}
}
a by jeszcze tego szczęścia tego było mało BaseElement wygląda tak:
public abstract class BaseElement
{
public BaseElement()
{
}
}
Problem w tym, że podczas serializacji otrzymuję wyjątek o tym, że właściwy element, który jest uszczegółowieniem BaseElement nie może zostać serializowany i wymagane jest dodanie atrybutu XmlInclude.
Problem w tym, że BaseElement i ElementCollection jest w DLL bazowej i nie może znać innych elementów. Stąd z mojej strony pytanie: czy mogę jakoś dodać ten atrybut w klasie która zna wszystkie właściwe elementy i zna bazowy element?
Pozdrawiam,
Grzegorz