假设我有一些 .NET 代码......
public class EventEnvelope
{
public Dictionary<string, string> Headers { get; set; }
public byte[] Body { get; set; }
}
public class EventSelector
{
public Predicate<Dictionary<string, string>> Selector { get; set; }
}
现在我想将此事件选择器发送到一个不是用 .NET 编写的事件代理。
我如何以跨平台的方式序列化这个谓词,以便用另一种语言编写的程序可以重建谓词并执行它?
我曾想过尝试编写一个序列化程序,它将谓词写出一些 javascript,然后让 rhino 或 jint 解释并在代理处执行它。
或者也许有一种实际的跨平台方式来表示我不知道的谓词?
你怎么看?
最佳答案
您是否尝试将谓词定义为 Expression ,然后尝试序列化表达式树?这样你就可以获得一致的方式来序列化你的谓词并执行它们。
关于.net - 谓词序列化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5739122/