国产探花免费观看_亚洲丰满少妇自慰呻吟_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 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乐东| 南木林县| 浦县| 河北省| 鄂温| 枣庄市| 湖北省| 九龙县| 凤凰县| 绥芬河市| 南和县| 浮梁县| 拉孜县| 常熟市| 永丰县| 甘德县| 澄城县| 寿阳县| 封丘县| 克拉玛依市| 获嘉县| 安阳县| 修文县| 收藏| 三台县| 株洲市| 沙河市| 诏安县| 乳山市| 申扎县| 南昌市| 东海县| 杭锦后旗| 玉屏| 和顺县| 安康市| 辽源市| 绥芬河市| 威远县| 威海市| 田东县|