internal static TomlTable CreateFromClass <T>(ITomlRoot root, T obj, TableTypes tableType) where T : class { if (root == null) { throw new ArgumentNullException(nameof(root)); } if (obj == null) { throw new ArgumentNullException(nameof(obj)); } TomlTable tt = new TomlTable(root, tableType); var props = root.Settings.GetSerializationProperties(obj.GetType()); var allObjects = new List <Tuple <string, TomlObject> >(); foreach (var p in props) { object val = p.GetValue(obj, null); if (val != null) { TomlObject to = TomlObject.CreateFrom(root, val, p); AddComments(to, p); allObjects.Add(Tuple.Create(p.Name, to)); } } tt.AddScopeTypesLast(allObjects); return(tt); }