Я хотел бы создать список различий между 2 экземплярами одного и того же объекта. Объект в вопросе:
public class Step
{
[DataMember]
public StepInstanceInfo InstanceInfo { get; set; }
[DataMember]
public Collection<string> AdHocRules { get; set; }
[DataMember]
public Collection<StepDoc> StepDocs
{...}
[DataMember]
public Collection<StepUsers> StepUsers
{...}
}
Что я хотел бы сделать, это найти интеллектуальный способ вернуть объект, который перечисляет различия между двумя экземплярами (например, дайте мне знать, что были добавлены 2 конкретных StepDocs, 1 конкретный StepUser был удалено, и одно правило было изменено с «Перейти» на «Стоп»). Я искал использование хэша MD5, но я не могу найти хороших примеров обхода такого объекта и возврата манифеста конкретных различий (не просто указывая, что они разные).
Дополнительная справочная информация: причина, по которой мне нужно это сделать, заключается в том, что поддерживаемый мной API позволяет клиентам сохранять SaveStep (шаг step) ... это прекрасно работает для сохранения объекта Step в БД с помощью сущности и репозитории. Мне нужно вызывать определенные события (например, добавление этого пользователя и т. Д.) Из этого метода SaveStep, однако, чтобы предупредить другую систему (механизм рабочего процесса), что конкретный элемент в шаге изменился.
Спасибо.