为了清楚起见,我使用的是 .net 3.5
我目前正在创建一个 Visual Studio Visualizer,以便能够查看 WF RuleSet 中各个规则的值。一切正常,但现在我需要执行以下操作。
假设我有一个规则是“this.Age > 50”,然后一个动作为 MessageBox.Show("Bigger than 50"),另一个动作为 MessageBox.Show("Less than 50")
我需要能够选择规则“this.Age > 50”并将其评估为真或假。或者我需要选择规则的一部分,例如。“this.Age”并将其评估为假设 70。
最后一点是有效的。我正在获取执行 RuleSet 的对象并获取文件并尝试找到一个名为 Age 的字段,如果找到,我会得到它的值,如果找不到该字段,我会查看属性。这是有效的。
问题是评估“this.Age > 50”。当然,我可以在这种情况下做一个解析器并评估它,但问题是我必须评估“this.Age > 50”、“this.Age < 50”......我想你理解这个问题。当然,我还想评估例如“this.GetCurrentAge()”,其中 GetCurrentAge() 是由 RuleSet 在其中执行的上下文的对象表示的类中的一个方法。
我想我可以尝试在运行时将一个方法注入到我当前拥有的并已实例化的对象中。这样,我可以创建一些简单的东西
public string EvaluationMethod()
{
return (this.Age > 50).ToString();
}
在这种情况下,我将在运行时构建此方法并将其注入到对象的当前实例中。
问题是我似乎找不到将代码注入对象当前实例的方法。我只能找到有关如何在运行时创建新类的示例,但没有关于仅创建方法并注入它的示例。
有人可以帮忙吗,或者给出任何其他的想法?
谢谢