返回首页

简介
PostSharp4ViewState是一个插件] AOP框架的Gael Fraiteur。它的目标是简化使用声明式编程的概念在ASP.NET网页和控制状态管理。我该如何使用呢?
每当你想储存一些回发之间的价值,你装饰与属性 - 即PersistAttribute。这种方式,您可以同时存储属性和字段值。属性,让您决定是否存储在ViewState或处于控制状态中的值应。不同的是,存储ViewState可以被禁用,以减少页面大小。存储控件状态不能被禁用外部,但应明确由控件本身启用。它是如何工作?
PostSharp4ViewState的主要组成部分是一个饰有持久属性的字段/属性类型搜索的意见,供应商。对于每一次这样的类型,织造工艺发起如下: 如果有一个或多个字段/属性存储在ViewState中,LoadViewState和SaveViewState创建或修改。如果有一个或多个字段/属性存储在控制状态,LoadControlState和SaveControlState创建或修改。此外,OnInit方法是创建,如果它不存在,添加调用Page.RegisterRequiresControlState(本)。
存储在ViewState和控制状态的处理方法,其实,相同的,不同的只是名称。他们这一代人是使用以下规则进行:如果存在保存状态的方法,新的代码后,现有的一个补充。它装饰的字段/属性的值存储在一个Object []数组,和它一起放在另一个Object []数组中的现有代码的结果。如果不存在保存*状态的方法,它是生成的,如果它存在,只包含一个调用base.Save *国家。如果负载*存在状态的方法,新的代码之前,现有的一个补充。它传递的值转换到一个Object []数组,并使用第二个元素(投另一个对象[])发起装饰的字段/属性。首先看重的是通过现有的代码。如果负载*国家法不存在,它是生成的,如果它存在,并只包含调用base.Load *国家。
例如,一类这样的:

public class Properties : BaseControl

{

   private int _intValue;

  

   [Persist(Mode = PersistMode.ControlState)]

   public int IntProp

   {

      get { return _intValue; }

      set { _intValue = value; }

   }

}

将被改造,编译后,进入:如何表现呢?
PostSharp4ViewState您的手写代码一样快!它不使用老挝,但纯粹的低级PostSharp,所以没有额外的对象被实例化因为使用方面。唯一的影响是纯代码,保存和加载持久值。您可以使用{A1}]拆解DLL,并确保没有多余的代码在你的类。

回答

评论会员:emperon 时间:2011/12/27
我没有看到张贴在这里的任何代码
评论会员:SzymonPobiega 时间:2011/12/27
你可以从CodePlex网站(http://codeplex.com/PostSharp4ViewState)的源代码和二进制
评论会员:SzymonPobiega 时间:2011/12/27
,这是真的很方便,当你不能从基类继承

海事组织,只是来自你的基类,并添加功能来处理属性。

{A2} - 1.0阿尔法4A现在(2008年5月29日)
((λ(X)`((λ(X),X)",X))'`((λ(X),X)" ,X))