国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

有關WCSF的幾點整理

2019-11-17 01:57:51
字體:
來源:轉載
供稿:網友

有關WCSF的幾點整理

本文示例代碼

一、CreateNew Attribute實現屬性注入

Steps:

1/ aspx創建某個服務的屬性。

2/ 為其添加[CreateNew] Attribute。

3/ 頁面繼承自Microsoft.PRactices.CompositeWeb.Web.UI.Page,而非System.Web.UI.Page。

1 public partial class Sample : Microsoft.Practices.CompositeWeb.Web.UI.Page2 {3     [CreateNew]4     public ComputeService ServiceForCompute5     {6         set;7         get;8     }9 }

運行頁面。黃頁,發生錯誤。

解決辦法:

4/ 為web site添加Globe文件,使application繼承自Microsoft.Practices.CompositeWeb.WebClientApplication。

1 <%@ Application Language="C#" Inherits="Microsoft.Practices.CompositeWeb.WebClientApplication" %>

二、InjectionMethod Attribute

在class中,[InjectionMethod]修飾過的方法將在該類實例化的時候執行,僅次于類的constructor。

三、使用StateValue<T>進行值的持久化

StateValue<T>值的存取是通過session來完成的,這也就實現了變量的持久化。

Steps:

1/ 聲明一StateValue<int>變量。

2/ 在class的初始化方法中(標記了[InjectionMethod]的方法),通過StateDependency為其注入指定Key值的Session。

3/ 頁面可以任意的對其賦值、取值。

 1 private StateValue<int> m_ResultValue; 2 public int ResultValue 3 { 4     get 5     { 6         return m_ResultValue.Value; 7     } 8     set 9     {10         m_ResultValue.Value = value;11     }12 }13 14 [InjectionMethod]15 public void InitState([StateDependency("result")]StateValue<int> resultValue)16 {17     m_ResultValue = resultValue;18 }

[StateDependency("result")]意味著parameter resultValue的內容從Session["result"]注入。

四、InjectionConstructor Attribute

用來修飾類的構造函數,指明該類需被某處注入時,默認調取的constructor。一個class中,最多有一個構造函數可標記該標簽。

五、module services的注冊和使用

(1) 以module為單位對其內的Services進行注冊。

Steps:

1/ 為每一module創建一個(且只創建一個)繼承自ModuleInitializer的類,override其中的Load方法,完成服務的注冊。

 1 public override void Load(CompositionContainer container) 2 { 3     base.Load(container); 4  5     AddModuleServices(container.Services); 6 } 7  8 protected virtual void AddModuleServices(IServiceCollection moduleServices) 9 {10     moduleServices.AddNew<SecondService, ISecondService>();11 }

2/ 在Web.config中配置需加載的modules。

1 <module name="Calculation" assemblyName="Modules" virtualPath="~/"></module>

assemblyName指明需注冊Services的dll來源。在站點初始化的時候,通過指定的dll,由反射的方式找到其中繼承自ModuleInitializer的類,完成容器內服務的注冊。

(2) 由ServiceDependency標簽使用依賴注入容器內的服務

Interface被ServiceDependency標記,意味著從容器內獲取其實現類。

1 [InjectionConstructor]2 public ComputeService([ServiceDependency] ISecondService secondService)3 {4     this.m_SecondCalculateService = secondService;5 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇明县| 清徐县| 南澳县| 班玛县| 封开县| 涞源县| 蒲城县| 车险| 黔西| 中超| 三河市| 阿克陶县| 鹰潭市| 高阳县| 固镇县| 大洼县| 英山县| 洛南县| 蓬溪县| 营口市| 宿州市| 台南县| 太湖县| 涞水县| 莆田市| 思茅市| 镇雄县| 资溪县| 牙克石市| 衡东县| 红桥区| 东辽县| 尼玛县| 思南县| 革吉县| 颍上县| 南宫市| 永泰县| 邵阳市| 安平县| 白玉县|