public static void Register <TInterface, TActual>() where TActual : TInterface, IFactory, new() { if (typeof(TInterface) == typeof(IFactory)) { throw new CantRegisterTypeIFactoryInAbstractFactoryException(); } var t = typeof(TInterface); if (_factories.ContainsKey(t)) { throw new Exception($"The type ({t}) is already registered"); } var actual = new TActual(); actual.PrimeRegistry(); _factories.Add(t, actual); }
public Enumerator(IndexerWrapper <TActual, TActualItem> enumerable) { actual = enumerable.Actual; indexer = enumerable.indexer; index = -1; Current = default !;