ModelBuilder.EnumerableTypeCreator.CreateInstance C# (CSharp) Method

CreateInstance() private method

private CreateInstance ( Type type, string referenceName, LinkedList buildChain ) : object
type System.Type
referenceName string
buildChain LinkedList
return object
        protected override object CreateInstance(Type type, string referenceName, LinkedList<object> buildChain,
            params object[] args)
        {
            Debug.Assert(type != null, "type != null");

            if (type.IsInterface)
            {
                var internalType = FindEnumerableTypeArgument(type);
                var genericTypeDefinition = typeof(List<string>).GetGenericTypeDefinition();
                var genericType = genericTypeDefinition.MakeGenericType(internalType);

                return Activator.CreateInstance(genericType);
            }

            return Activator.CreateInstance(type, args);
        }