Предикатная сериализация
Допустим, у меня есть немного кода.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 и выполнял его в брокере.
Или, может быть, существует настоящий кроссплатформенный способ представления предикатов, о котором я не знаю?
Как вы думаете?
1 ответ
Вы пытались определить свой предикат как выражение, а затем пытались сериализовать дерево выражений? Таким образом, вы можете получить последовательный способ сериализации ваших предикатов и их выполнения.