WEB开发网
开发学院软件开发VC Visual Studio 2008+NClay小试牛刀 阅读

Visual Studio 2008+NClay小试牛刀

 2008-01-22 21:41:25 来源:WEB开发网   
核心提示: 很多时候面对多个视图处理同样的逻辑,这时候可以借助于框架的AOP功能完成,Visual Studio 2008+NClay小试牛刀(3),以下是统一处理页面左侧的功能,[NClay.MVC.ViewAspect(NClay.MVC.AspectLevel.High)]public clas

很多时候面对多个视图处理同样的逻辑,这时候可以借助于框架的AOP功能完成。以下是统一处理页面左侧的功能。

[NClay.MVC.ViewAspect(NClay.MVC.AspectLevel.High)]
public class AspectBaseView:NClay.MVC.IAspect
{
 #region IAspect 成员
 public void Aspect(object source, NClay.MVC.AspectHandler e)
 {
if (source is BaseView)
{
 BaseView bv = (BaseView)source;
 NClay.MVC.Container.Execute<Logic.SysUser.IBlogConfig>(bv, true);
 NClay.MVC.Container.Execute<Logic.Category.IStatCategories>(bv, true);
 NClay.MVC.Container.Execute<Logic.Post.IHotPost>(bv, true);
}
e.Execute(source);
 }
 #endregion
}

为了避免加载重复的数据,可以通过AOP来实现逻辑数据的缓存处理。

[NClay.MVC.LogicAspect(typeof(Logic.SysUser.IBlogConfig),
typeof(Logic.SysUser.IEditUserInfo))]
public class BlogConfigCache : NClay.MVC.IAspect
{
 #region IAspect 成员
public void Aspect(object source, NClay.MVC.AspectHandler e)
 {
if (source is Logic.SysUser.IBlogConfig)
{
 Logic.SysUser.IBlogConfig config = (Logic.SysUser.IBlogConfig)source;
 config.OwnerConfig = CacheUnit.GetBlogConfig();
 if (config.OwnerConfig == null)
 {
e.Execute(source);
CacheUnit.SetBlogConfig(config.OwnerConfig);
 }
}
if (source is Logic.SysUser.IEditUserInfo)
{
 e.Execute(source);
 CacheUnit.ClearBlogConfig();
}
 }
 #endregion
}

程序运行效果图

Visual Studio 2008+NClay小试牛刀

图4

上一页  1 2 3 

Tags:Visual Studio NClay

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接