/// <summary> /// Creates new instance with explicitly defined parameters and no support for snaphot. /// </summary> /// <param name="builder">The constructor parameters builder.</param> public ReflectionAggregateRootFactory(ReflectionAggregateRootFactoryBuilder builder) { Ensure.NotNull(builder, "builder"); historyParameters = builder.Parameters; List <Type> internalParameters = new List <Type>() { ReflectionAggregateRootFactoryBuilder.Parameter.KeyType, ReflectionAggregateRootFactoryBuilder.Parameter.HistoryType }; historyConstructorInfo = CreateConstructorInfo(builder.Parameters, internalParameters); }
/// <summary> /// Creates new instance with explicitly defined parameters for standart/history constructor and for snapshot constructor. /// </summary> /// <param name="historyBuilder">The standart/history constructor parameters builder.</param> /// <param name="snapshotBuilder">The snapshot constructor parameters builder.</param> public ReflectionAggregateRootFactory(ReflectionAggregateRootFactoryBuilder historyBuilder, ReflectionAggregateRootFactoryBuilder snapshotBuilder) : this(historyBuilder) { Ensure.NotNull(snapshotBuilder, "snapshotBuilder"); snapshotParameters = snapshotBuilder.Parameters; List <Type> internalParameters = new List <Type>() { ReflectionAggregateRootFactoryBuilder.Parameter.KeyType, ReflectionAggregateRootFactoryBuilder.Parameter.SnapshotType, ReflectionAggregateRootFactoryBuilder.Parameter.HistoryType }; snapshotConstructorInfo = CreateConstructorInfo(snapshotBuilder.Parameters, internalParameters); }