using System.Collections.Generic;
public interface IDomainEvent {}
public class ProductSetCreatedEvent : IDomainEvent {}
public class VersionCreatedEvent : IDomainEvent {}
public class ProductSetCreatedEventHandler : IDomainEventHandler<ProductSetCreatedEvent> {}
public class VersionCreatedEventHandler : IDomainEventHandler<VersionCreatedEvent> {}
public interface IDomainEventHandler<in TDomainEvent> where TDomainEvent : IDomainEvent {}
public interface IDomainEventHandler2 {}
public class ProductSetCreatedEventHandler2 : IDomainEventHandler2 {}
public interface IRegistry<in TDomainContraVariant>
where TDomainContraVariant : IDomainEventHandler2
void Add(TDomainContraVariant element);
public class Registry<TDomainContraVariant> : IRegistry<TDomainContraVariant>
where TDomainContraVariant : IDomainEventHandler2
private IList<IDomainEventHandler2> list;
this.list = new List<IDomainEventHandler2>();
public void Add(TDomainContraVariant element)
public IList<IDomainEventHandler2> Get()
private static Registry<IDomainEventHandler2> list = new Registry<IDomainEventHandler2>();
public static void Main()
IDomainEventHandler2 eventHandler = new ProductSetCreatedEventHandler2();
AddToRegistry<IDomainEventHandler2>(eventHandler);
public static void AddToRegistry<TDomainContraVariant>(TDomainContraVariant cesto)
where TDomainContraVariant : IDomainEventHandler2