static TypeMap CreateDefaultTypeMap (Type type)
{
var l = new List<TypeMapMember> ();
foreach (var fi in type.GetFields ())
if (!fi.IsStatic)
l.Add (new TypeMapField (fi, null));
foreach (var pi in type.GetProperties ())
if (pi.CanRead && pi.CanWrite && !pi.GetGetMethod ().IsStatic)
l.Add (new TypeMapProperty (pi, null));
l.Sort ((x, y) => x.Order != y.Order ? x.Order - y.Order : String.Compare (x.Name, y.Name, StringComparison.Ordinal));
return new TypeMap (type, null, l.ToArray ());
}