读书人

怎么动态创建匿名对象或类对象中的属性

发布时间: 2012-03-14 12:01:12 作者: rapoo

如何动态创建匿名对象或类对象中的属性? 希望反射技术用的好地高手来帮一下忙。

--如何动态添加匿名对象中的属性?
例:
//先创建一个有Name属性的匿名对象
object obj = new { Name = "abc" };

//如果我想再往里面动态添加一个Note属性,我改如何操作?

--或者如何动态构建一个类(可以通过字符串方式)?
例:
"class AAA{ string name = "abab"; }"
//如何将这个字符串生成为一个类对象

谢谢。。。

[解决办法]

C# code
            CSharpCodeProvider p = new CSharpCodeProvider();            CompilerParameters param = new CompilerParameters(new string[] { "System.dll" });            string s = "namespace __ns{public class AAA{ public string name{get{return \"abab\";}} }}";            CompilerResults rel = p.CompileAssemblyFromSource(param, s);            Type t = rel.CompiledAssembly.GetType("__ns.AAA");            object o = t.GetConstructor(System.Type.EmptyTypes).Invoke(null);            MessageBox.Show(t.GetProperty("name").GetValue(o, null).ToString()); 

读书人网 >C#

热点推荐