public static void DoMain() { object weaklyTyped = CreateCheesecake(); var stronglyTyped = GrottyHacks.Cast(weaklyTyped, new { Fruit = "", Topping = "" }); Console.WriteLine("Cheesecake: {0} ({1})", stronglyTyped.Fruit, stronglyTyped.Topping); GrottyHacks.Cast(weaklyTyped, () => new { Fruit = "", Topping = "" }); Console.WriteLine("Cheesecake: {0} ({1})", stronglyTyped.Fruit, stronglyTyped.Topping); TestJoin <TestPerson, TestCity> join = new TestJoin <TestPerson, TestCity>(); join.SelectFields(f => new { f.Id, f.Name }); //var res= join.Select2( ()=> new {Id=1, Name="hello"}); //Console.WriteLine(res.Name); //var res1= GrottyHacks.Cast(join.Select1((f,j)=> new { Id= f.Id, Name=f.Name}), // new{Id=1,Name="nomre"} ); var res1 = join.Select1((f, j) => new { Id = f.Id, Name = f.Name }); Console.WriteLine(res1.GetType()); //join.SelectFields((f,j)=> new {f.Name, j.Name}); var result = Repeat(new { Name = "Foo Bar", Age = 100 }, 10); Console.WriteLine(result); var newResult = GetDogsWithBreedNames((Name, BreedName) => new { Name, BreedName }); Console.WriteLine(newResult); Console.WriteLine(newResult.Name); var sm = join.Select3((person, city) => new { Name = "Ciudad", Id = 1 }); Console.WriteLine(sm); }
public object Select1 <TKey>(Expression <Func <TFrom, TJoin, TKey> > fields) { //return new { fields}; return(GrottyHacks.Cast(new { fields }, new { fields })); }