您的位置:首页 > 其它

Kigg项目分析 -- 2.背后的故事

2010-10-10 18:11 363 查看
Kigg这个项目在启动的时候,同时干了很多的是,如创建默认用户,加载后台事件等。到目前为止,我还不能分析出每个事件或者默认功能的作用。在这里只是对加载的机制做以分析。如果能启示大家,我就很高兴的了。

希望在大家还记得在上篇文章中的提到的GlobalApplication类,就是Global.asax.cs文件。在OnStart方法中的Bootstrapper.Run()。这里就是后台处理的开始。这个方法只有一句话IoC.ResolveAll<IBootstrapperTask>().ForEach(t => t.Execute());用一个IOC的方式装载在配置文件中实现了IBootstrapperTask的方法,并启动每个类的Execute()方法用来执行该类的操作。其中StartBackgroundTasks类(也是实现IBootstrapperTask的)的Execute()又装载和执行了实现IBackgroundTask的类,这还是一个以IOC方式装载和执行的操作。

IBackgroundTask接口中,其实只是指定了启动,停止和标记该服务的运行状态的标记。大家可以这样理解,所谓启动就是在一些事件上注册处理方法,而停止就是删除这些方法的注册。例如PingServer类在它的启动方法中是这样写的:

_storySubmitToken = Subscribe<StorySubmitEvent, StorySubmitEventArgs>(StorySubmitted);

这就是说项StorySubmitEvent注册方法StorySubmitted其参数为StorySubmitEventArgs;而停止方法则是:

Unsubscribe<StorySubmitEvent>(_storySubmitToken);

意思就是解除StorySubmitted对StorySubmitEvent注册。

这就是Kigg项目后台处理的基本原理,欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: