Exemple #1
0
        public TypeConstructor(Type concreteType = null, Action <T> initializer = null)
        {
            this.initializer = initializer;

            ReferenceType = typeof(T);
            ConcreteType  = concreteType ?? ReferenceType;

            if (ReferenceType != ConcreteType && !ReferenceType.IsAssignableFrom(ConcreteType))
            {
                throw new InvalidOperationException($"{ReferenceType.Name} cannot be used as a reference type for concrete type {ConcreteType.Name}");
            }
        }