首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

WF 框架設計器篇(四):設計器序列化、代碼生成與驗證

     編輯:關於C語言

Designer View 職責

  • 呈現各種 ActivityDesigner、傳送訊息
  • 視窗管理、命令路由、捲動、拖放、佈局、列印預覽

ISite 與 IServiceContainer

  • ISite:綁定元件與容器,透過 GetService 取得 DesignerHost 所有服務
  • IServiceContainer:服務容器可形成樹狀結構,promote=true 時操作提交給父容器
  • 實作思路與 WinForms 設計器高度相似

設計器序列化

將活動樹持久化,支援多種輸出格式:

序列化器輸出格式用途
TypeCodeDomSerializerC# / VB.NET 代碼預設,編譯為組件
WorkflowMarkupSerializerXAML (XOML)宣告式、可視化、版本控制
自訂序列化器BPEL, DSL 等領域專用語言整合

格式指定方式:在 Activity 屬性中標記 [DesignerSerializer(...)]。

設計器序列化類別圖

代碼生成

  • 觸發時機:驗證通過後、C# 編譯前
  • 本質:提供 CodeDOM 生成代碼檔案的機會
  • 適用場景:包含 Code Activity、指定 TypeCodeDomSerializer 時
  • 生成代碼 → 編譯為 .NET Assembly

驗證機制

序列化前會進行驗證,確保活動樹符合語義規則 (如必要屬性是否設定、連接是否完整)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved