熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET MVC 4框架揭秘:Controller的釋放和會話狀態行為的控制[2]

2022-06-13   來源: .NET編程 

  [AttributeUsage(AttributeTargetsClass AllowMultiple = false Inherited = true)]

  public sealed class SessionStateAttribute : Attribute

  {

  public SessionStateAttribute(SessionStateBehavior behavior)

  public SessionStateBehavior Behavior { get; }

  }

  DefaultControllerFactory會試著獲取應用在Controller類型上的SessionStateAttribute特性如果這樣的特性存在則直接返回它的Behavior屬性所表示的SessionStateBehavior枚舉如果不存在則返回SessionStateBehaviorDefault具體的邏輯也反映在我們自定義的ReflectedControllerFactory的GetControllerSessionBehavior方法中

  public class ReflectedControllerFactory : IControllerFactory

  {

  //其他成員

  public SessionStateBehavior GetControllerSessionBehavior(

  RequestContext requestContext string controllerName)

  {

  Type controllerType = thisGetControllerType(requestContextRouteData

  controllerName)

  if (null == controllerType)

  {

  return SessionStateBehaviorDefault;

  }

  SessionStateAttribute attribute = controllerType

  GetCustomAttributes(true)OfType<SessionStateAttribute>()

  FirstOrDefault()

  attributeattribute = attribute ??

  new SessionStateAttribute(SessionStateBehaviorDefault)

  return attributeBehavior;

  }

  }

       返回目錄ASPNET MVC 框架揭秘

       編輯推薦

       ASP NET開發培訓視頻教程

       Microsoft NET框架程序設計視頻教程

       Java程序性能優化讓你的Java程序更快更穩定

       Visual C++音頻/視頻技術開發與實戰

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/16080.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.