В текущей системе, над которой я работаю, мне нужны функциональные возможности для внесения изменений.
То, что пользователь может создать пакет поправок, и этот пакет содержит новую версию различных объектов домена (не изменения структуры, а только изменения данных).
Я хочу иметь «AmmendmentPackage», содержащий все изменения, которые должны быть внесены в различные типы элементов.
Пока у меня есть
public class AmmendmentPackage : BaseObject
{
public string Name {get;set;}
public string Description { get; set; }
public int MajorVersionNumber { get; set; }
public int MinorVersionNumber { get; set; }
public bool IsGazetted { get; set; }
public AmmendmentPackageState State { get; set; }
}
public class Ammendment<T>
{
public T AmmendedElement{get;set;}
public AmmendmentState State {get;set;}
public ConcurrencyDetails ConcurrencyState { get; set; }
}
Как мне использовать пакет AmmendmentPackage, содержащий несколько разных типов Ammentment. Я думал об использовании ICollection, но тогда у меня был бы ICollection<Ammenndment<T>>
, и у меня мог быть только один тип поправок в пакете.
Также рассматривал вопрос об использовании словаря, но не уверен на 100%, как мне это сделать, но надеюсь, я не пропустил что-то действительно простое, но был бы рад некоторым идеям.
Приветствия