跳到主要内容
版本:2.x

依赖服务注入

在构造函数.ctor中填入需要的参数,在执行构造函数时会自动填充,类似于Microsoft.Extensions.DependencyInjection中的IServiceCollection

备注
  • 当有多个公开的构造函数时,将会选择第一个进行填充和调用
  • 当首选的构造函数存在无法获取的服务没有找到可用的构造函数(公开且非静态) 时 将报错

参数类型

提示

你可以使用serviceProvider.GetRequiredService<T>()扩展方法快速通过类型获取服务对象

示例

using Serein.Core.Models.Plugins.Net;
using System;

namespace MyPlugin;

public class MainPlugin : PluginBase
{
private readonly IServiceProvider _serviceProvider;

public MainPlugin(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider; // 保存为字段方便后续调用
}

public override void Dispose() { }
}
using Serein.Core.Models.Plugins.Net;
using Serein.Core.Services.Data;
using System;

namespace MyPlugin;

public class MainPlugin : PluginBase
{
public MainPlugin(SettingProvider settingProvider)
{
settingProvider.Save(); // 保存设置
}

public override void Dispose() { }
}