static void Main(string[] args) { //dynamic item = new ExpandoObject(); //item.SomeProperty = "I am a dynamic property"; //item.GetProperty = (Func<string>)(() => item.SomeProperty + " in a Func."); //Console.WriteLine(item.SomeProperty); //Console.WriteLine(item.GetProperty()); //item.GetProperty = "BOOOOOOM! Mind BLOWN!"; //Console.WriteLine(item.GetProperty); dynamic profile = new Profile(); profile.Address1 = "my address"; profile.Telephone = "303232112"; dynamic phone = new PhoneNumberOnly(); phone.Telephone = "3032225555"; UpdateModelInfo(profile); UpdateModelInfo(phone); Console.ReadKey(); }