C#的CodeTypeDeclaration动态创建了一个类怎么调用这个类,以及怎么给这个类的字段赋值,取值等呢?
1个回答
展开全部
你用的这个叫CodeDOM,他只会生成源代码而已,不会编译。
如果你想生成出来直接调用那个叫反射发出,Reflection.Emit,这个需要用AssemblyBuilder。而且你需要知道IL代码怎么写,因为要用ILGenerator才能生成方法体。推荐你用Linq Expression来生成方法体,或者你可以用Mono.Cecil的类库来做,会比较简单。
如果你真心需要动态的代码,建议你嵌入脚本引擎,DLR使用Python或者Ruby都可以,其他的如Javascript或Boo语言都推荐。
如果你想生成出来直接调用那个叫反射发出,Reflection.Emit,这个需要用AssemblyBuilder。而且你需要知道IL代码怎么写,因为要用ILGenerator才能生成方法体。推荐你用Linq Expression来生成方法体,或者你可以用Mono.Cecil的类库来做,会比较简单。
如果你真心需要动态的代码,建议你嵌入脚本引擎,DLR使用Python或者Ruby都可以,其他的如Javascript或Boo语言都推荐。
更多追问追答
追问
看样子你挺会的。呵呵能否教下?
追答
不知道你的目的是什么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询