Сначала код:
[ServiceContract]
public interface IWorker
{
[OperationContract]
void Process(XmlElement data);
[OperationContract]
void Update(Rule rule);
}
[DataContract]
public class Rule
{
[OperationContract]
public string Expression { get; set; }
[OperationContract]
public List<IAction> Actions { get; set; }
}
public interface IAction
{
void Execute(XmlElement data);
}
Диспетчер кодирует данные как xml и отправляет их в экземпляр IWorker, где оценивается каждое выражение. Когда экземпляр IWorker оценивает выражение как истинное, вызывается IAction.Execute и передается xml / data.
Как лучше всего сериализовать Rule.Actions? Я начал писать собственный сериализатор, но хотел бы посмотреть, есть ли более простой способ.
Спасибо.