gri*_*ave 7 episerver episerver-7
有谁知道BlockData类为什么不直接实现IContent?我知道在从数据库中检索BlockData期间,由Castle创建的代理实现了IContent.
如果StackOverflow不适合此类问题,请移动它.
EPiServer的JohanBjörnfot解释了这篇文章中的一些细节.
摘抄:
"在以前版本的CMS中,页面(PageData)是内容存储库(传统上是DataFactory)处理的唯一内容类型.在CMS7中,这已经改变,所以现在内容存储库(IContentRepository)处理IContent实例.这意味着需要.NET可以从内容存储库保存/加载的类型是它实现了接口EPiServer.Core.IContent.
在内置于CMS中的IContent有一些实现,如PageData和ContentFolder(用于对共享块实例进行分组),也可以注册自定义IContent实现.如果你看看BlockData虽然你会注意到它没有实现IContent,然后处理共享块实例?
答案是在创建共享块实例的运行时(例如,通过调用IContentRepository.GetDefault,其中T是继承自BlockData的类型),CMS将创建一个新的.NET类型,使用名为mixin的技术继承T生成的子类将实现一些额外的接口(包括IContent)."
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |