亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? enginemanager.cs

?? 博客園WxWinter寫的WF工作流入門學(xué)習(xí)資料及示例代碼
?? CS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Runtime.Tracking;
using System.Workflow.Runtime.Hosting;
using System.ComponentModel.Design;
using System.Xml;
using System.Reflection;
using System.Workflow.ComponentModel.Compiler;
using System.IO;
using System.CodeDom.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.ComponentModel.Design.Serialization;
using System.Collections;
using wxwinter.wf.UDPCommunication;
using System.Workflow.ComponentModel;

namespace wxwinter.wf.Service
{
	public class EngineManager : wxwinter.wf.Service.IEngineManager 
	{
        //引擎
        System.Workflow.Runtime.WorkflowRuntime WFEngine = null;
        
        //UDP發(fā)送對(duì)象
        UDPSend send;

        //引擎日志
        private ArrayList engineLog = new ArrayList();

 

        public EngineManager(WorkflowRuntime Engine)
        {
            if (Engine == null)
            { throw new System.Exception("引擎對(duì)象沒有實(shí)例化"); }
            WFEngine = Engine;
            eventBind();
           
        }

        /// <summary>
        /// 構(gòu)造函數(shù)
        /// </summary>
        /// <param name="Engine">引擎</param>
        /// <param name="udpobj">UDP對(duì)象</param>
        public EngineManager(WorkflowRuntime Engine, UDPSend udpobj)
        {
            if (udpobj == null || Engine ==null)
            { throw new System.Exception("UDP對(duì)象或引擎對(duì)象沒有實(shí)例化"); }
           
            engineLog.Add("UDP服務(wù)已加載");
           
            send = udpobj;
            WFEngine = Engine;
            
            eventBind();
        }
        /// <summary>
        /// 事件綁定
        /// </summary>
        void eventBind()
        {
            WFEngine.Started += new EventHandler<WorkflowRuntimeEventArgs>(WFEngine_Started);
            WFEngine.Stopped += new EventHandler<WorkflowRuntimeEventArgs>(WFEngine_Stopped);
            WFEngine.ServicesExceptionNotHandled += new EventHandler<ServicesExceptionNotHandledEventArgs>(WFEngine_ServicesExceptionNotHandled);
            WFEngine.WorkflowAborted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowAborted);
            WFEngine.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(TestEngine_WorkflowCompleted);
            WFEngine.WorkflowCreated += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowCreated);
            WFEngine.WorkflowIdled += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowIdled);
            WFEngine.WorkflowLoaded += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowLoaded);
            WFEngine.WorkflowPersisted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowPersisted);
            WFEngine.WorkflowResumed += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowResumed);
            WFEngine.WorkflowStarted += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowStarted);
            WFEngine.WorkflowSuspended += new EventHandler<WorkflowSuspendedEventArgs>(TestEngine_WorkflowSuspended);
            WFEngine.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(TestEngine_WorkflowTerminated);
            WFEngine.WorkflowUnloaded += new EventHandler<WorkflowEventArgs>(TestEngine_WorkflowUnloaded);

        }


        /// <summary>
        /// 得到日志列表
        /// </summary>
        /// <returns></returns>
        public ArrayList GetEngineLog()
        {
            return engineLog;
        }

        //工作流類到xoml字串
        string GetWorkflowClassXomlString(Activity wf)
        {
            WorkflowMarkupSerializer wfSerializer = new WorkflowMarkupSerializer();
            DesignerSerializationManager sm = new DesignerSerializationManager();
            sm.CreateSession();

            System.Text.StringBuilder s = new StringBuilder();
            XmlWriter xmlwriter = XmlWriter.Create(s);

            wfSerializer.Serialize(sm, xmlwriter, wf);
            if (sm.Errors.Count > 0)
            {
                engineLog.Add("GetWorkflowClassXomlString出現(xiàn)錯(cuò)誤:" + sm.Errors.Count.ToString());
            }
            return s.ToString();
        }

        //工作流類到xoml字串
        public string GetWorkflowInstanceXomlString(string guid)
        {
     

            WorkflowInstance temp = GetInstance(guid);
            if (temp != null)
            {
                string s = GetWorkflowClassXomlString(temp.GetWorkflowDefinition());
                return s;
                
            }
            else
            {
                return "";
            }

            
        }

        /// <summary>
        /// 引擎中是否存在指定實(shí)例
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public bool IsExistInstance(string guid)
        {
          bool b=GetInstanceList().Contains(guid);
          return b;
        }
        /// <summary>
        /// 得到工作流實(shí)例
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public WorkflowInstance  GetInstance(string guid)
        {

            if (!WFEngine.IsStarted)
            {
                this.engineLog.Add("在引擎暫停時(shí)讀取" + guid);
                return null;
            }
           if (IsExistInstance(guid))
            {      
              Guid gid = new Guid(guid);
              WorkflowInstance temp= WFEngine.GetWorkflow(gid);
              return temp;
            }

            else
            {
                return GetInstanceFormPersist(guid);
            }
        }

        WorkflowInstance GetInstanceFormPersist(string guid)
        {
            Guid gid = new Guid(guid);
            WorkflowInstance temp;
            try
            {
                temp = WFEngine.GetWorkflow(gid);
                temp.Load();
                return temp;
            }
            catch
            {
                return null;
            }
        }



        #region 事件綁定
        void WFEngine_Stopped(object sender, WorkflowRuntimeEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發(fā)生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "Stopped");
            this.engineLog.Add(s);
        }

        void WFEngine_Started(object sender, WorkflowRuntimeEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發(fā)生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "Started");

            this.engineLog.Add(s);
        }

        void WFEngine_ServicesExceptionNotHandled(object sender, ServicesExceptionNotHandledEventArgs e)
        {
            string s = string.Format("{0}引擎,在{1},發(fā)生{2}", WFEngine.Name, System.DateTime.Now.ToString(), "ServicesExceptionNotHandled" + e.Exception.Message);
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstanceId.ToString(), "ServicesExceptionNotHandled", System.DateTime.Now.ToString(),e.Exception.Message);
            sendMsg(v);
        }

        void TestEngine_WorkflowUnloaded(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowUnloaded", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowTerminated(object sender, WorkflowTerminatedEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowTerminated", System.DateTime.Now.ToString(), e.Exception.Message);
            sendMsg(v);
        }

        void TestEngine_WorkflowSuspended(object sender, WorkflowSuspendedEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowSuspended", System.DateTime.Now.ToString(), e.Error);
            sendMsg(v);
        }

        void TestEngine_WorkflowStarted(object sender, WorkflowEventArgs e)
        {
            this.nStarteInstance++;
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowStarted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowResumed(object sender, WorkflowEventArgs e)
        {

            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowResumed", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowPersisted(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowPersisted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowLoaded(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowLoaded", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowIdled(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowIdled", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowCreated(object sender, WorkflowEventArgs e)
        {
            this.nCreateInstance++; 
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowCreated", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowCompleted(object sender, WorkflowCompletedEventArgs e)
        {
            this.nCompletedInstance++;
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowCompleted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        void TestEngine_WorkflowAborted(object sender, WorkflowEventArgs e)
        {
            string v = string.Format("{0},{1},{2},{3}", e.WorkflowInstance.InstanceId.ToString(), "WorkflowAborted", System.DateTime.Now.ToString(), "-");
            sendMsg(v);
        }

        public void sendMsg(string v)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲日韩一区二区三区| 制服丝袜亚洲精品中文字幕| 亚洲成人动漫精品| 国产日产精品一区| 在线成人av网站| 成人国产在线观看| 青青草国产成人av片免费| 久久精品视频一区| 欧美精品久久99久久在免费线| 成人性生交大片| 蜜臀av一区二区| 亚洲一区在线观看视频| 国产亚洲成av人在线观看导航| 8x福利精品第一导航| 日本精品一级二级| 成人国产精品免费观看| 国产一区二区三区美女| 午夜欧美在线一二页| 亚洲久草在线视频| 1024亚洲合集| 国产日韩亚洲欧美综合| 日韩欧美中文一区| 欧美一区二区三区四区高清| 欧美色综合天天久久综合精品| 成人永久看片免费视频天堂| 久久99这里只有精品| 蜜臀av一区二区在线观看| 天天综合网 天天综合色| 亚洲免费观看高清| 亚洲码国产岛国毛片在线| 国产婷婷色一区二区三区在线| 精品国产网站在线观看| 精品国产sm最大网站免费看| 91精品免费观看| 7777精品伊人久久久大香线蕉超级流畅 | 精品1区2区3区| 色悠久久久久综合欧美99| 成人黄色777网| 成人激情动漫在线观看| 国产sm精品调教视频网站| 国产精品538一区二区在线| 国产盗摄一区二区| 国产91精品在线观看| 成人免费视频国产在线观看| 不卡视频一二三四| 97久久人人超碰| 色综合久久天天| 在线观看日韩毛片| 欧美丰满一区二区免费视频| 欧美一卡2卡三卡4卡5免费| 欧美一区二区三区免费在线看| 日韩欧美三级在线| 国产色产综合色产在线视频| 国产欧美一区二区三区在线老狼| 日本一区二区三区国色天香| 成人免费小视频| 亚洲一区二区高清| 美女高潮久久久| 成人性生交大片免费看视频在线| 99这里都是精品| 在线视频一区二区三区| 91精品午夜视频| 国产欧美一区二区在线观看| 亚洲欧美成人一区二区三区| 亚洲成精国产精品女| 理论电影国产精品| 成人福利视频网站| 欧美亚日韩国产aⅴ精品中极品| 91精品国产aⅴ一区二区| 国产区在线观看成人精品 | 欧美精品乱码久久久久久| 欧美一级日韩一级| 国产日韩精品一区| 亚洲一二三级电影| 国产老妇另类xxxxx| 色八戒一区二区三区| 欧美一级片在线| 中文字幕一区二区日韩精品绯色| 亚洲成人综合网站| 国产老妇另类xxxxx| 91国偷自产一区二区三区成为亚洲经典 | 美女网站一区二区| 国产黄色精品视频| 欧美另类变人与禽xxxxx| 久久久久久99久久久精品网站| 久久99精品久久久久久久久久久久| 成人av免费在线观看| 欧美精品丝袜久久久中文字幕| 国产欧美一区二区三区在线老狼| 亚洲国产精品影院| 99视频精品在线| 日韩精品专区在线影院观看| 一区二区成人在线| 国产精品456露脸| 欧美丰满一区二区免费视频| 国产精品国产三级国产aⅴ原创| 日本一区中文字幕| 91精彩视频在线| 国产精品视频在线看| 另类成人小视频在线| 欧美三级电影精品| 最新热久久免费视频| 久久99精品国产麻豆不卡| 欧美色视频一区| 亚洲欧美另类久久久精品| 国产一区二区网址| 91精品一区二区三区久久久久久| 亚洲欧美国产三级| 成人午夜电影久久影院| 精品国产乱码91久久久久久网站| 亚洲一区二区欧美| 99久久免费国产| 国产午夜精品久久| 极品少妇xxxx精品少妇| 91精品福利在线一区二区三区| 一区二区三区免费| 91在线视频18| 国产精品福利影院| 国产传媒久久文化传媒| 精品第一国产综合精品aⅴ| 天天色图综合网| 欧美午夜精品电影| 亚洲自拍偷拍av| 色欧美88888久久久久久影院| 欧美国产日韩一二三区| 中文字幕av免费专区久久| 色婷婷精品大在线视频| 国产精品原创巨作av| 欧美一二三四区在线| 日日骚欧美日韩| 欧美丰满少妇xxxxx高潮对白| 一个色妞综合视频在线观看| 色哟哟日韩精品| 一区二区三区四区精品在线视频| 成人免费福利片| 中文字幕在线观看不卡视频| 成人免费毛片a| 中文字幕一区二区不卡| 91丨porny丨中文| 亚洲丝袜精品丝袜在线| 亚洲国产精品二十页| 粉嫩av一区二区三区| 国产精品第一页第二页第三页 | 91视频一区二区三区| 亚洲欧美中日韩| 日本伦理一区二区| 亚洲一级二级在线| 欧美一级高清大全免费观看| 麻豆国产精品一区二区三区| 精品国产电影一区二区| 国产在线一区观看| 欧美高清在线一区二区| 91丨porny丨国产| 亚洲午夜影视影院在线观看| 91精品午夜视频| 国产一区二区三区精品视频| 国产拍欧美日韩视频二区| 91在线丨porny丨国产| 亚洲成人免费观看| 日韩女优av电影| 丁香激情综合国产| 一区二区三区欧美日韩| 欧美日韩成人综合天天影院 | 欧洲另类一二三四区| 日韩成人一级片| 久久精品一级爱片| 色久优优欧美色久优优| 天堂在线一区二区| 国产日韩精品一区| 欧美视频完全免费看| 国内久久婷婷综合| 亚洲乱码精品一二三四区日韩在线| 欧美日韩亚洲丝袜制服| 国产在线国偷精品产拍免费yy| 亚洲欧洲一区二区在线播放| 欧美伦理影视网| 成人免费视频app| 亚洲成人资源在线| 久久精品欧美一区二区三区不卡| 色香蕉久久蜜桃| 久久99精品久久久久| 玉米视频成人免费看| 精品1区2区在线观看| 在线观看免费视频综合| 国产精品一区二区男女羞羞无遮挡 | 亚洲黄一区二区三区| www久久精品| 欧美日韩高清在线播放| 粉嫩一区二区三区在线看| 图片区小说区区亚洲影院| 欧美高清在线视频| 欧美一级高清大全免费观看| 色婷婷久久99综合精品jk白丝 | 91丨九色porny丨蝌蚪| 久久精品噜噜噜成人88aⅴ| 一区二区三区电影在线播| 久久久久久久久久久99999| 欧美日韩国产123区| 91视频国产资源| 国产精品一区二区在线观看网站 |