KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
In C# 3.0 you can create anonymous class with the following syntax var o1 = new { Id = 1, Name = "Foo" }; Is there a way to dynamic create these anonymous class to a variable? Example: var o1 = new { Id = 1, Name = "Foo" }; var o2 = new { SQ = 2, Birth = DateTime.Now }; Dynamic create Example: var o1 = DynamicNewAnonymous(new NameValuePair("Id", 1), new NameValuePair("Name", "Foo")); var o2 = DynamicNewAnonymous(new NameValuePair("SQ", 2), new NameValuePair("Birth", DateTime.Now)); Beacuse I need to do: dynamic o1 = new ExpandObject(); o1."ID" = 1; <--"ID" is dynamic name o1."Name" = "Foo"; <--"Name" is dynamic name And Scene1: void ShowPropertiesValue(object o) { Type oType = o.GetType(); foreach(var pi in oType.GetProperties()) { Console.WriteLine("{0}={1}", pi.Name, pi.GetValue(o, null)); } } if I call: dynamic o1 = new ExpandObject(); o1.Name = "123"; ShowPropertiesValue(o1); It can't show the result: Name = 123 And also I how to Convert the ExpandoObject to AnonymouseType ? Type type = o1.GetType(); type.GetProperties(); <--I hope it can get all property of o1 Last, I modify ShowPropertiesValue() method void ShowPropertiesValue(object o) { if( o is static object ) <--How to check it is dynamic or static object? { Type oType = o.GetType(); foreach(var pi in oType.GetProperties()) { Console.WriteLine("{0}={1}", pi.Name, pi.GetValue(o, null)); } } else if( o is dynamic object ) <--How to check it is dynamic or static object? { foreach(var pi in ??? ) <--How to get common dynamic object's properties info ? { Console.WriteLine("{0}={1}", pi.Name, pi.GetValue(o, null));
Tags (comma-separated)
Save Edits
Cancel