IControllerFactory通过CreateController方法根据传入的请求上下文和Controller的名称来激活相应的Controller对象。...1: public interface IControllerFactory 2: { 3: IController CreateController(RequestContext requestContext...然后通过从自己的RequestContext中提取的RouteData获得Controller的名称,最后将它连同RequestContext一起作为ContollerFactory的CreateController...作为CreateController方法输入参数的controllerName仅仅表示Controller的名称,我们需要加上Controller字符后缀作为类型名称。...在DefualtControllerFactory初始化过程中,我们通过BuildManager加载所有应用的程序集,并加载所有实现了接口IController的类型并保存起来,而在CreateController
these two concepts. describe("Store Controller", function() { var $controller, Contact, StoreService, createController...$new(); StoreService = _StoreService_; Contact = _Contact_; createController = function...return { then: function(callback) { return callback(user); } }; }); createController
public class FastControllerFactory : DefaultControllerFactory { public override IController CreateController...return obj as IController; } } FastControllerFactory就是我们自定义的一个Controller工厂,重写CreateController
getAllSessionDescriptors(callback: AsyncCallback>>): void获取所有会话的描述符createController...controller) => { g_controller.push(controller); }).catch((err) => { console.error('createController...error');});// 注册会话创建监听,创建控制器avSession.on('sessionCreate', (session) => { // 新增会话,需要创建控制器 avSession.createController...: ERROR : ${err.message}`);});avSession.castAudio('all', audioDevices).then(() => { console.info('createController...: SUCCESS');}).catch((err) => { console.info(`createController : ERROR : ${err.message}`);});6.释放资源
} /** * * 生成器核心部分 * * @param serviceNameStartWithI 是否前缀I * @param createController...static void codingMysql(boolean serviceNameStartWithI, boolean createController...createController) { templateConfig.setController(null); } // 整合起来运行
HttpControllerDescriptor创建被描述HttpController的能力体现在它的CreateController方法上。...接下来我们就来着重介绍实现在这个CreateController方法中的HttpController创建机制。...GetHttpControllerActivator(this ServicesContainer services); 5: } 实际上HttpControllerDescriptor的CreateController...如下的代码体现了CreateController方法真正的实现逻辑。...HttpControllerDescriptor 2: { 3: //其他成员 4: public virtual IHttpController CreateController
我们可以通过这个入口做很多事情; 我们看一下IControllerFactroy接口的定义: 1 public interface IControllerFactory { 2 IController CreateController...string controllerName); 4 void ReleaseController(IController controller); 5 } 接口中定义了三个方法,第一个方法CreateController...DefaultControllerFactroy),DefaultControllerFactroy实现了核心的创建IController代码,这为我们的扩展提供了很好的接口; 通过调用IControllerFactory接口的CreateController
await shellScope.UsingAsync(execute); } } protected T CreateController...ISession>(); Assert.NotNull(session); var controllerObj = CreateController
HttpControllerDescriptor创建被描述HttpController的能力体现在它的CreateController方法上。...接下来我们就来着重介绍实现在这个CreateController方法中的HttpController创建机制。...class HttpControllerDescriptor 2: { 3: //其他成员 4: public virtual IHttpController CreateController...如下的代码体现了CreateController方法真正的实现逻辑。...public class HttpControllerDescriptor 2: { 3: //其他成员 4: public virtual IHttpController CreateController
Module::runAction 代码 public function runAction($route, $params = []) { /** * yii\base\Module::createController...* * 3、调用 yii/base/Module::getModule 查看 route 中是否有 module 存在 * 如果直接调用yii/base/Module::createController...createControllerByID * 通过 createControllerByID 实例化的 Controller 类,必须继承 yii\base\Controller * createController...和 createControllerByID 都使用 Yii::createObject 实例化 */ $parts = $this->createController($route
RouteData routeData = this.RequestContext.RouteData; 19: var controller = this.ControllerFactory.CreateController...RequestContext requestContext); 4: } 5: public interface IControllerFactory 6: { 7: IController CreateController...1: class DefaultControllerFactory : IControllerFactory 2: { 3: public IController CreateController
configuration, string controllerName, Type controllerType); 5: 6: public virtual IHttpController CreateController...ConcurrentDictionary Properties { get; } 17: } HttpControllerDescriptor具有创建HttpController的能力主要体现在其CreateController...换句话说,目标HttpController的激活是通过调用描述它的HttpControllerDescriptor对象的CreateController方法完成的。
api.ReplicationController, error)GetController(controllerId string) (*api.ReplicationController, error)CreateController
HttpControllerDispatcher接下来调用这个HttpControllerDescriptor对象的CreateController方法得到激活的HttpController对象。...对于这个HttpControllerDescriptor对象来说,当它的CreateController方法被调用之后,它会获取注册的HttpControllerActivator对象,并调用其Create
), routeData); 23 var controller = ControllerBuilder.Current.GetControllerFactory().CreateController
RequestContext.RouteData.GetRequiredString("controller"); 3 factory = ControllerBuilder.GetControllerFactory(); 4 controller = factory.CreateController...(RequestContext, controllerName); 从RequestContext.RouteData中获取到当前请求的conroller名称,然后用来作为factory.CreateController
启动控制器CI->startController(),若当前控制器是闭包Closure则执行并返回执行结果,如果当前控制器为空、不存在或方法不存在则返回异常 如果当前控制器不是闭包且存在则创建控制器CI->createController...启动控制器CI->startController(),若当前控制器是闭包Closure则执行并返回执行结果,如果当前控制器为空、不存在或方法不存在则返回异常 如果当前控制器不是闭包且存在则创建控制器CI->createController
->run() | |—->CWebApplication::processRequest() | |—-> CWebApplication::runController($route) | |—->createController
我们再看看这句指向:\yii\base\Module.php public function runAction($route, $params = []) { $parts = $this->createController...} Module里有一段: $controller = Yii::createObject($this->controllerMap[$id], [$id, $this]); 其实在 $this->createController
领取专属 10元无门槛券
手把手带您无忧上云