Пример #1
0
        /// <summary>
        /// THttpApi的实例创建器抽象
        /// </summary>
        /// <param name="actionDescriptorProvider"></param>
        /// <param name="actionInvokerProvider"></param>
        /// <exception cref="ArgumentException"></exception>
        /// <exception cref="NotSupportedException"></exception>
        public HttpApiActivator(IApiActionDescriptorProvider actionDescriptorProvider, IApiActionInvokerProvider actionInvokerProvider)
        {
            var interfaceType = typeof(THttpApi);

            this.ApiMethods     = HttpApi.FindApiMethods(interfaceType);
            this.actionInvokers = this.ApiMethods
                                  .Select(item => actionDescriptorProvider.CreateActionDescriptor(item, interfaceType))
                                  .Select(item => actionInvokerProvider.CreateActionInvoker(item))
                                  .ToArray();

            // 最后一步创建工厂
            this.factory = this.CreateFactory();
        }