我真的想在运行时生成一个新类型.基本上,我想创建看起来像这样的类型:
public class MySpecial123
{
public Func<int, DateTime, int> salesVectorCalc; // field
public int CallSalesVectorCalculation(int i, DateTime d)
(
return salesVectorCalc(i, d);
)
}
Run Code Online (Sandbox Code Playgroud)
一些类型将根据用户/数据库输入而有所不同,因此我无法以任何其他方式完成它,然后在运行时创建类型.还有更复杂的问题,但我想让我的问题变得简单,所以我只是在这里提出基本问题.我需要做更多代,就像你在这里看到的那样.
我认为使用它会很酷Reflection.Emit,但后来我意识到生成代码并在内存中编译所有内容可能更容易.有谁知道哪个更好?我真的想看一个如何做其中任何一个的例子.
当你说"在运行时生成一个类型"时,听起来好像你要求动态类型.
在C#4.0中,只需使用dynamic关键字即可完成.
但是,您还描述了类似于代码生成的东西 - 如果这更像您所追求的,为什么不使用类似T4模板的东西在"预编译"阶段生成您的类型?
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |