Exemplo n.º 1
0
        public object CreateType(DataRequest request, ComplexModel model)
        {
            if (model.New != null)
            {
                return(model.New(request));
            }

            var constructorInfo = _selector.SelectConstructor(request, request.RequestedType);

            if (constructorInfo == null)
            {
                if (request.RequestedType.GetTypeInfo().IsValueType)
                {
                    return(Activator.CreateInstance(request.RequestedType));
                }

                throw new Exception("Could not find public constructor on type " + request.RequestedType.FullName);
            }

            return(InjectConstructor(constructorInfo, request));
        }