C# 实现属性注入和方法注入的简单实例

// 定义一个接口
    public interface IMessageService
    {
        void SendMessage(string message);
    }
    // 实现该接口
    public class EmailService : IMessageService
    {
        public void SendMessage(string message)
        {
            Console.WriteLine("发送邮件:" + message);
        }
    }
    // 属性注入示例
    public class PropertyDI
    {
        private IMessageService _messageService;
        // 属性注入依赖对象
        public IMessageService MessageService
        {
            set { _messageService = value; }
        }
        public void ProcessMessage(string message)
        {
            // 使用注入的依赖对象
            _messageService.SendMessage(message);
        }
    }
    // 方法注入示例
    public class MethodDI
    {
        private IMessageService _messageService;
        // 方法注入依赖对象
        public void SetMessageService(IMessageService messageService)
        {
            _messageService = messageService;
        }
        public void ProcessMessage(string message)
        {
            // 使用注入的依赖对象
            _messageService.SendMessage(message);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            IMessageService emailService = new EmailService();
            PropertyDI pro = new PropertyDI();
            // 属性注入示例
            pro.MessageService = emailService;
            pro.ProcessMessage("属性注入:Hello World!");

            MethodDI met = new MethodDI();
            // 方法注入示例
            met.SetMessageService(emailService);
            met.ProcessMessage("方法注入:Hello World!");
            Console.ReadLine();

        }
    }

属性注入通过类的属性来注入依赖对象,而方法注入则通过类的方法来注入依赖对象。

在应用中,创建依赖对象后,可以通过属性注入或方法注入将依赖对象注入到“PropertyDI”、“MethodDI”类中,从而实现依赖注入。

posted @ 2023-03-15 21:49  紫月银空  阅读(268)  评论(0编辑  收藏  举报