These two statements (avoiding public properties only, no interfaces,) are not correct
Perhaps you are refereeing to the old product FastSerializer
The new product Serialization Studio does not have such limitations.
You can use private members, it is up to you. But if you want these members to serialize 50 times faster than binary formatter, you have to declare them public.
No limitations on the interfaces either.
public interface MyInter
{
int MyInt { get;set;}
}
public class Class2 : MyInter
{
private string PrivString;
private int _int2;
public int MyInt
{
get
{
return _int2;
}
set
{
_int2 = value;
}
}
}
The class above can be perfectly serialized by the Serialization Studio.