基於DotNet構件技術的企業級敏捷式軟體開發 (Agile Software Development)平台 – AgileEAS.NET – 外掛程式標記實現

來源:互聯網
上載者:User

      前面的文章AgileEAS.NET之外掛程式介面IModule對外掛程式的基本契約寶義也就是介面做了一個介紹,本文將提供另一種模組外掛程式的定義,採用屬性標記外掛程式。

      我們定義了ModuleAttribute屬性:

ModuleAttribute    /// <summary>    /// EAS.NET模組外掛程式屬性。    /// </summary>    /// <remarks>    /// 提供IModule的標記實現,提供基於屬性標記的外掛程式實現。    /// </remarks>    [AttributeUsage(AttributeTargets.Class)]    public class ModuleAttribute : Attribute    {        private Guid guid = System.Guid.Empty;        private string name = string.Empty;        private string description = string.Empty;        /// <summary>        /// 初始化ModuleAttribute對象。        /// </summary>        /// <param name="guid">模組Guid。</param>        /// <param name="name">模組名稱。</param>        public ModuleAttribute(string guid, string name)        {            this.guid = new Guid(guid);            this.name = name;        }        /// <summary>        /// 初始化ModuleAttribute對象。        /// </summary>        /// <param name="guid">模組Guid。</param>        /// <param name="name">模組名稱。</param>        /// <param name="description">模組說明。</param>        public ModuleAttribute(string guid, string name,string description)        {            this.guid = new Guid(guid);            this.name = name;            this.description = description;        }                /// <summary>        /// 模組Guid。        /// </summary>        public string Guid        {            get            {                return this.guid.ToString();            }            set            {                this.guid = new Guid(value);            }        }        /// <summary>        /// 模組名稱。        /// </summary>        public string Name        {            get            {                return this.name;            }            set            {                this.name = value;            }        }        /// <summary>        /// 模組說明。        /// </summary>        public string Description        {            get            {                return this.description;            }            set            {                this.description = value;            }        }

      及ModuleRunAttribute屬性

ModuleRunAttribute    /// <summary>    /// 模組入口方法屬性。    /// </summary>    /// <remarks>    /// 配合ModuleAttribute實現基於標記的IMoule模組。    /// </remarks>    [AttributeUsage(AttributeTargets.Method)]    public class ModuleRunAttribute : Attribute    {        /// <summary>        /// 初始化ModuleRunAttribute對象。        /// </summary>        public ModuleRunAttribute()        {        }    }

      我們只需要在我們要公用的模組外掛程式的類打上ModuleAttributes標記、在模組的入口調用方法上打上ModuleRunAttribute就可以了,以下為樣本:

Hello    /// <summary>    /// 基於標記實現的外掛程式。    /// </summary>    [Module("CB58C5BB-5D15-4a17-802E-341F9F65F35C", "Hello例子", "基於標記的模組實現例子")]    public class Hello    {        /// <summary>        /// 入口方法。        /// </summary>        [ModuleRun]        public void Start()        {            MessageBox.Show("Hello...");        }        public void Start2()        {            MessageBox.Show("Hello2...");        }    }

     在以上例子中,我們標記了一個模組外掛程式,他的GUID屬性為“CB58C5BB-5D15-4a17-802E-341F9F65F35C”,模組名稱為Hello例子,入口方法為Start方法,特別聲明一下,Start必須為一公用為參該當,Web模組不需要入口方法。

 

連結:AgileEAS.NET應用開發平台介紹

       AgileEAS.NET之敏捷並行開發方法

 

       敏捷軟體工程實驗室

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.