阅读 104

dotnet Framework的aop和dotnet net core的aop

.Net Framework的aop

/// 
    /// 特性类
    /// 
    public class FormFilterAttribute:Attribute
    {
        private readonly string _formTitle;

        public FormFilterAttribute(string formTitle)
        {
            this._formTitle = formTitle;
        }

        /// 
        /// 通过特性设置标题
        /// 
        /// 
        public void SetTitle(Form form)
        {
            form.Text = _formTitle;
        }

    }
View Code
 /// 
    /// 调用特性的类
    /// 
    public class RunWithAop
    {
        /// 
        /// aop通用的方法
        /// 
        /// 
        public static void AopMethod(Form form)
        {
            /**
             * 1.获取特性
             * 2.得到特性的实例,调用特性中的方法
             */ 
             Type type= form.GetType();
            if (type.IsDefined(typeof(FormFilterAttribute),true))
            {
                //调用GetCustomAttribute方法需要引用反射的命名空间。否则只能看到GetCustomAttributes方法。
                FormFilterAttribute attribute = (FormFilterAttribute)type.GetCustomAttribute(typeof(FormFilterAttribute));
                attribute.SetTitle(form);
            }
        }

        /// 
        /// 给外界调用的方法
        /// 
        /// 
        public static void RunApp(Form form)
        {
            AopMethod(form);
            Application.Run(form);
        }

        public static void Show(Form form)
        {
            AopMethod(form);
            form.Show();
        }

        public static void ShowDialog(Form form)
        {
            AopMethod(form);
            form.ShowDialog();
        }
    }
View Code
 static class Program
    {
        /// 
        ///  The main entry point for the application.
        /// 
        [STAThread]
        static void Main()
        {
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            RunWithAop.RunApp(new Form1());
        }
    }
View Code

 

原文:https://www.cnblogs.com/wesley168/p/14819600.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐