.net:依赖注入

 示例

1. 创建接口和实现类

首先,我们需要创建一个接口和它的实现类。

接口 IMyDependency

// Interfaces/IMyDependency.cs
namespace DependencyInjectionSample.Interfaces
{
    public interface IMyDependency
    {
        void WriteMessage(string message);
    }
}

实现类 MyDependency 

// Services/MyDependency.cs
namespace DependencyInjectionSample.Services
{
    public class MyDependency : IMyDependency
    {
        public void WriteMessage(string message)
        {
            Console.WriteLine($"Message: {message}");
        }
    }
}

2. 配置依赖注入

接下来,在Program.cs文件中配置依赖注入。

Program.cs

using DependencyInjectionSample.Interfaces;
using DependencyInjectionSample.Services;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

// 注册Scoped生命周期的服务
builder.Services.AddScoped<IMyDependency, MyDependency>();

var app = builder.Build();

 

3. 使用依赖注入

最后,在Razor Page模型中使用注入的依赖。

Index2Model.cshtml.cs

// Pages/Index2Model.cshtml.cs
namespace DependencyInjectionSample.Pages
{
    public class Index2Model : PageModel
    {
        private readonly IMyDependency _myDependency;

        public Index2Model(IMyDependency myDependency)
        {
            _myDependency = myDependency;
        }

        public void OnGet()
        {
            _myDependency.WriteMessage("Index2Model.OnGet");
        }
    }
}

过滤器

  1. 授权过滤器

    • 用于在执行动作之前进行权限验证,确保只有经过授权的用户才能访问特定的动作。
  2. 资源过滤器

    • 在执行动作之前和之后执行,可以用于处理资源级别的逻辑,如日志记录、性能监控等。
  3. 动作过滤器

    • 在执行动作方法之前和之后执行,可以用于修改输入参数或输出结果,如验证模型、缓存结果等。
  4. 异常过滤器

    • 用于捕获并处理动作执行期间抛出的异常,确保应用程序的稳定性和用户体验。
  5. 结果过滤器

    • 在执行动作结果之前和之后执行,可以用于修改动作结果,如压缩响应、添加HTTP头等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值