Visual Studio 2008+NClay小试牛刀
2008-01-22 21:41:25 来源:WEB开发网很多时候面对多个视图处理同样的逻辑,这时候可以借助于框架的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
}
程序运行效果图
图4
- ››Visual Basic 2008 数学函数
- ››Visual Studio2005中Smart Device的问题
- ››Visual Studio 中根据数据库字段动态生成控件
- ››Visual Studio 11全新黑色主题
- ››Visual Studio 2011 Beta新特性(一):安装VS201...
- ››Visual Studio自定义调试窗体两个小技巧
- ››Visual Studio 2005 Team Edition for Database P...
- ››Visual C#两分钟搭建BHO IE钩子
- ››Visual C++优化对大型数据集合的并发访问
- ››VISUAL C++中的OCX控件的使用方法
- ››Visual C++实现视频图像处理技术
- ››Visual C++制作一个Sniffer实例
更多精彩
赞助商链接