Сначала я позвонил в ISnapshotService, вот что он делает
CountrySnapshot snapshot = snapshotService.CreateSnapshot<Country, CountrySnapshot>(country);
Чтобы это работало, страна должна выглядеть следующим образом
public class Country : ISnapshottable<CountrySnapshot>
{
public CountrySnapshot CreateSnapshot(ISnapshotService snapshotService) { }
}
, а CountrySnapshot должен выглядеть следующим образом
public class CountrySnapshot : ISnapshotFor<Country> { }
Я использовал имя «Снимок», потому что изначально я предназначал этот сервис для создания неизменяемых снимков классов для снимка системы на конец периода для целей бухгалтерского учета.Однако мне пришло в голову, что иногда результат не будет неизменным снимком, например, StockLocation может создать StockAudit (который не является снимком.)
Итак, имея в виду, что это больше не будет простосоздать снимки, которые мне нужны, чтобы придумать лучшие имена для этих 3 интерфейсов.
- ISnapshotService
- ISnapshottable - Страна реализует это, чтобы указать, что может создать CountrySnapshot
- ISnapshotFor- CountrySnapshot реализует это, чтобы показать, что он создан из страны
Любое предложение приветствуется.Спасибо