我有
new List<string> {"MyTypeA", "MyTypeB"};
如何在运行时生成类型?
public class MyTypeA {decimal value {get;set;}};
public class MyTypeB; {decimal value {get;set;}};
让我解释为什么我需要这个。 Here,我写了关于表达式树的序列化。最后,我用于此任务Serialize.Linq。序列化和反序列化工作正常但我遇到了另一个问题。 我的算法使用以下主体构建表达式:
{(args[0] - args[1] + args[0])}
为表达式(MyTypeA - MyTypeB + MyTypeA)获取此主体,其中MyTypeA和MyTypeB是参数。 args [n]它是参数数组。问题是我不知道数组元素和参数之间的关联。如果我没弄错的话,我应该有类似的东西:
{(MyTypeA - MyTypeB + MyTypeA)}
MyTypeA&amp; MyTypeB是运行时生成的类型。 我知道可以编写一个包装器并一次发送带有参数的表达式和数组。但在我的情况下,我今天可以在服务器上发送表达式并在一周后发送参数。 所以我问这个问题。
这是Source code。
我怀疑的功能:
public Expression<Func<decimal[], decimal>> Parse()
方法按字符读取表达式字符串。
private Expression ReadParameter(TextReader reader, Expression arrayParameter)
创建表示应用数组索引运算符的表达式。