谓词序列化

Joh*_*uiz 5 .net serialization predicate jint

假设我有一些 .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; }
}
Run Code Online (Sandbox Code Playgroud)

现在我想将此事件选择器发送到一个不是用 .NET 编写的事件代理。

我如何以跨平台的方式序列化这个谓词,以便用另一种语言编写的程序可以重建谓词并执行它?

我曾想过尝试编写一个序列化程序,它将谓词写出一些 javascript,然后让 rhino 或 jint 解释并在代理处执行它。

或者也许有一种实际的跨平台方式来表示我不知道的谓词?

你怎么认为?

Laz*_*OfT 0

您是否尝试将谓词定义为Expression,然后尝试序列化表达式树?这样您就可以获得一致的方式来序列化谓词并执行它们。