Time of Update: 2018-12-08
適配器設計模式是把一個類的介面轉化成用戶端期望的介面,從而使原本介面不匹配的兩個類能一起工作。實際中這種情境很容易碰到,比如A類型手機充電器需要10V電壓充電,B類型手機需要15V電壓充電。A類型手機的充電器價格非常昂貴,而B類型的充電器價格低廉。市場就有可能出現把B型充電器轉換成A型手機匹配的適配器。適配器設計模式有兩種:類適配器:使用繼承實現介面轉換。執行個體適配器:使用組合實現介面轉換。類適配器類圖:類適配器設計的角色:源:被適配的類。目標:客戶期望的介面.由於適配器需要繼承源。所以目標
Time of Update: 2018-12-08
文章目錄 WCF 承載服務 WCF 承載服務WinForm 承載 WCF服務端服務代碼服務介面:namespace WCFService{[ServiceContract]public interface IServiceWindow{[OperationContract(IsOneWay=false)]string GetCurrentTime();}}服務實現:using System;using System.Collections.
Time of Update: 2018-12-08
文章目錄 定義代碼運行結果結論 定義ManualResetEvent:通知正在等待的線程已發生事件。AutoResetEvent:通知正在等待的線程已發生事件。代碼ManualResetEvent測試using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace
Time of Update: 2018-12-08
文章目錄 測試代碼運行結果:結論 線程池實現的原理:多執行緒 Apartment模式,藉助搶先式多任務方式,利用高效能的隊列和調度來實現。線程池管理是指多線程應用程式的初始化過程中建立線程的集合,當需要線程是,為新的任務重用線程,而不是建立新的線程。線程的數量一般是固定的。線程池中的線程都分配了一個任務,當任務完成時,線程就返回線程池中等待下一次分配。線程池的優點:• 不需要重新建立線程•
Time of Update: 2018-12-08
1 連字號形式的複雜屬性 連字號形式的複雜屬性:通過"複雜屬性名稱-子屬性" 字串格式提供追加到主控制項的屬性。 2 相關特性 2.1 PersistenceMod 持久化模式 Attribute InnerProperty :
Time of Update: 2018-12-08
1 狀態管理概述Control.ViewState :狀態資訊的字典。ViewState為StateBag的執行個體。 管理 ASP.NET 伺服器控制項的檢視狀態。 為支援伺服器控制項的檢視狀態管理而必須實現的屬性和方法。名稱說明LoadViewState當由類實現時,載入伺服器控制項以前儲存的控制項檢視狀態。SaveViewState當由類實現時,將伺服器控制項的檢視狀態更改儲存到
Time of Update: 2018-12-08
1. 泛型類可以從具體的、封閉式構造或開放式構造基類繼承 class BaseNode { } class BaseNodeGeneric<T> { } // concrete type class NodeConcrete<T> : BaseNode { } //closed constructed type class NodeClosed<T> : BaseNodeGeneric<int> {
Time of Update: 2018-12-08
所有的枚舉類型都是隱式繼承自System.Enum類型,Enum類型是繼承自System.ValueType類型唯一不為實值型別的參考型別。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public abstract class Enum:ValueType,IComparable,IFormattable,IConvertible 枚舉定義:
Time of Update: 2018-12-08
XmlSerialize: 序列化是將對象轉換成易於傳輸的形式的過程。例如,可以序列化對象,並使用 HTTP 通過 Internet 在用戶端和伺服器之間進行傳輸。另一方面,還原序列化在流中重新構建對象。XML 序列化只將對象的公用欄位和屬性值序列化為 XML 流。XML 序列化不包括類型資訊。例如,如果 Library 命名空間中存在 Book 對象,則不能保證將它還原序列化為同一類型的對象。注意: XML
Time of Update: 2018-12-08
.net 2.0 中我們可以實現ICallbackContainer 介面進行伺服器端回調,但是這種方法需要在服務端手工構造在黏合用戶端與服務端js代碼,用戶端需要編寫回調完成的處理方法,整個寫起來有點羅嗦。在.net 3.5中提供了更為簡潔的回調方法。想要使用ASP.NET AJAX在用戶端JavaScript中非同步呼叫定義在ASP.NET頁面中的方法,需要的條件: 1 伺服器端方法聲明為公有(public); 2
Time of Update: 2018-12-08
問題:引用第三方類庫的私人類與私人方法解決方案此問題的本質就是修改.net 程式集的中繼資料,把相應的類與方法的私人修飾符改為公有。假設有以下的程式集:CancelSealedClassLib.dll 有如下類型的定義using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace CancelSealedClassLib{ class mySealedClass
Time of Update: 2018-12-08
文章目錄 ThreadStaticAttribute範例程式碼運行結果分析 類的靜態欄位在類的執行個體中是共用的。多個線程修改執行個體欄位的值在對其它線程來說是可見的,這也是clr預設的行為。對靜態欄位添加ThreadStaticAttribute標記可以改變這種預設的行為。ThreadStaticAttribute指示靜態欄位的值對於每個線程都是唯一的。用 ThreadStaticAttribute 標記的 static
Time of Update: 2018-12-08
文章目錄 Monitor說明使用pulse與wait不使用pulse與wait結論 Monitor說明Enter, TryEnter擷取對象鎖。此操作同樣會標記臨界區的開頭。其他任何線程都不能進入臨界區,除非它使用其他鎖定對象執行臨界區中的指令。Wait釋放對象上的鎖以便允許其他線程鎖定和訪問該對象。在其他線程訪問對象時,調用線程將等待。脈衝訊號用於通知等待線程有關對象狀態的更改。Pulse (訊號),
Time of Update: 2018-12-08
定義:裝飾器設計模式以對用戶端透明的方式擴充項物件的功能,是繼承關係的一個替代方案。不改變對象的情況下,動態增加其功能。• 需要擴充一個類的功能,或給一個類添加附加的成員。• 需要動態地給一個對象增加功能,這些功能可以再次動態撤銷• 需要增加由一些準系統的排列組合二產生的非常大量的功能,從而使繼承關係實現變得不現實。裝飾器模式中的各個角色:• 抽象構件角色:給出抽象介面。規範被附加功能類型。• 具體構件角色:被附加功能的具體實現。• 裝飾角色:持有被附加對象的執行個體,並實現抽象構件的介面規範(
Time of Update: 2018-12-08
1.
Time of Update: 2018-12-08
在WCF的使用過程中,有時會碰到傳遞的資料量比較巨大,用戶端程式報錯。常見的解決方案就是通過增大改變服務端與用戶端設定檔serviceBehaviors的dataContractSerializer
Time of Update: 2018-12-08
1. 問題請計算下列代碼執行所耗費的時間,給出通用的解決方案?List<Int32> myList=new List<Int32>(); for(Int32 i=0;i<ICount;i++) { myList.Add(i); } 2. 解決方案 using (OperationTimer
Time of Update: 2018-12-08
文章目錄 WCF 非同步呼叫 WCF 非同步呼叫說明: WCF用戶端非同步呼叫與服務端代碼沒有關係,只是和用戶端的代碼有關係。服務端服務介面:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ServiceModel;namespace ConsoleAsyService{///
Time of Update: 2018-12-08
1 屏蔽組建設計時屬性 1) 重載父類的屬性,然後使用EditorBrowsable以及Browsable屬性標記:
Time of Update: 2018-12-08
1 IPostBackDataHandler 擷取自動載入回傳資料而必須實現的方法。 定義 ASP.NET 伺服器控制項為自動載入回傳資料而必須實現的方法。 名稱說明LoadPostData當由某個類實現時,它為 ASP.NET 伺服器控制項處理回傳資料。RaisePostDataChangedEvent當由類實現時,它用訊號要求伺服器控制項對象通知 ASP.NET 應用程式該控制項的狀態已更改。 2 樣本2.1 CustomerTextBoxError:此事列示範由於無法擷取http