Orchard中的内容处理程序文档提到Lifecycle Events
(http://docs.orchardproject.net/Documentation/Understanding-content-handlers)。
大多数事件都是自我解释的,但我想知道是否有人可以告诉我OnActivated
,OnInitializing
和OnLoading
之间的差异?
答案 0 :(得分:10)
按照解雇顺序:
OnActivated
- 已创建内容项对象层次结构,但尚未从db
用于准备内容部分以供进一步使用。例如。为延迟加载的对象设置getter和setter,设置委托等。把它想象成给定部分的“构造函数”。
OnInitializing
- 已创建内容项对象层次结构,但尚未从db中提取。
用于设置给定零件的初始/默认属性值。
OnLoading
- 即将从db加载内容项。
用于各种事物。仅当数据库中存在某个项目并且即将加载时才触发。 Orchard核心使用此事件为部分记录设置延迟加载器。
OnLoaded
- 内容项已从db
用于各种事物。仅当数据库中存在项目且已设置所有记录加载器时才触发。您可以确定part.Record
此时任何部分都不会为空,并且将包含从数据库中提取的数据。