static void Main(string[] args) { //var typeConfigs = new StructureTypeConfigurations(); //typeConfigs.Register<Order>(cfg => cfg // .UsingIndexMode(IndexMode.Exclusive) // .Members(i => i.Lines[0].Props)); //inclusive:Lines.* //inclusive:Lines.ArticleNo //exclusive:Lines.* //exclusive.Lines.ArticleNo //var structureBuilder = StructureBuilder.Create(cfg => cfg.Register<Order>()); //var order = Order.CreateSample(); //var orderStructure = structureBuilder.CreateStructure(order); //DumpStructure(orderStructure); //var structureBuilder = StructureBuilder.Create(cfg => cfg.Register<Foo>()); //var foo = Foo.CreateSample(); //var fooStructure = structureBuilder.CreateStructure(foo); //DumpStructure(fooStructure); var flexibleStructureBuilder = new FlexibleStructureBuilder(); //Optionally configure //flexibleStructureBuilder.ConfigureUsingTemplate( // new { Age = default(int), Name = default(string) }, // c => c.Members(i => i.Age)); var structure1 = flexibleStructureBuilder.CreateStructure(new { Age = 37, Name = "Daniel" }); var structure2 = flexibleStructureBuilder.CreateStructure(new { Age = 36, Name = "John" }); DumpStructure(structure1); DumpStructure(structure2); Console.ReadLine(); }