关于C#,我的问题非常非常简单:
我们可以使用以下语法创建动态类型:
dynamic dObj = new { P1 = "a", P2 = 1, p3 = DateTime.Now };
对于相同的结果,有没有办法从字符串变量创建该对象?像:
string sObj = @"new { P1 = "a", P2 = 1, p3 = DateTime.Now }";
dynamic dObj = [something].fromstring(sObj);
我们的想法是从一个字符串构建的对象中获取一个对象,或者我需要一个序列化器?
答案 0 :(得分:2)
这需要编译器。 ExpandoObject类几乎可以满足您的需求:
dynamic bag = new ExpandoObject();
bag.P1 = "a";
bag.P2 = 1;
bag.p3 = DateTime.Now;
这也解决了原始代码的问题,匿名类型的成员只具有内部可访问性。换句话说,您的dObj对象仅可用于同一程序集中的代码。