(1) IPortable
实现该接口的module,在action菜单中将添加“Import Content”和“Export Content”两个按钮。
另外:如果一个module支持IPortable接口,而且管理员创建站点模板(site template)时勾选了“with data”选项,那么这个module的内容也将同时导出。
继承该接口,必须同时实现该接口的两个方法:
public string ExportModule(int ModuleID){…}
public string ImportModule(int ModuleID,string Content,string Version,int UserID){…}
(2) IHydration
实现该接口可以提高module使用CBO类进行数据读取时的数据库操作的性能。
【关于CBO (Custom Bussiness Object 自定义业务对象),它用于实现从数据库中读取数据并实例化自定义业务对象。】
实现方法:
1.添加两个引用:
using DotNetKute.Entities.Modules;
using Sytem.Data;
2.实现接口方法:
public int KeyID{…}
public void Fill(IDataReader oReader){…}
(3) ISearchbale:
用于提供Module的内容到网站搜索引擎。
实现接口方法:
public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo){…}
该方法用于建立module内容的查询条目集。
dnn系统则通过以下两个方法来获取到这个查询条目集。。
1.通过调度(schedule)的方法,定期自动收集查询条目。位置:主机管理-调度管理
2.通过重建索引,手动收集。位置:主机管理-搜索管理。
总结:也就是说,如果dnn系统在进行调度或重建索引收集查询条目时,会检查module是否实现ISearchable接口,如果实现了接口方法,则通过反射该方法,获取查询条目集。然后生成新的索引。。
(4)IUpgradable
用于实现模块升级。
实现接口方法:
public string UpgradaModule(string moduleVersion){…}
(5)IActionable:
提供给开发人员添加自定义的元素到action菜单。
实现接口属性:
public DotNetNuke.Entities.Modules.Actions.ModuleActionCollection ModuleActions {get{…}}
(6)IPropertyAccess
继承该接口后,module可以实现token机制。
实现接口:
方法:GetPropertyValue(获取一个属性值)
属性:Cacheablility