1. При использовании BinaryFormatter можно было воспользоваться IDeserializationCallback, который вызывался в конце десериализации. Если нечто подобное для XmlSerializer?
2. Почему при _сериализации_ Root появляется в XML только если раскомментировать set? Если сриализовывать поле — коллекцию, то хватает get.
public class Literal
{
private string m_self;
public Literal( )
{
m_self = "";
}
public Literal( string self )
{
m_self = self;
}
public override bool Equals( object obj )
{
Literal other = obj as Literal;
if( other == null ) return false;
return other.m_self==m_self;
}
public override int GetHashCode( )
{
return base.GetHashCode( );
}
public override string ToString( )
{
return m_self.ToString( );
}
[XmlAttribute( DataType = "string", AttributeName = "text")]
public string Self
{
get { return m_self; }
set { m_self = value; }
}
}
public class CFGrammar
{
private Literal m_root;
public CFGrammar( )
{
m_root = new Literal( );
}
public Literal Root
{
get { return m_root; }
//set { m_root = value; }
}
}