NetCore Inject方式写Service层

使用[Inject]属性注入方式,你可以创建一个包括SQLSugar和日志(Log)的服务层。首先,确保你已经在Startup.csConfigureServices方法中配置了SQLSugar和日志服务,然后可以创建一个Service类并在其中注入这些依赖项。

以下是一个示例:

using Microsoft.Extensions.Logging;
using SqlSugar;

public interface IMyService
{
    void DoSomething();
}

public class MyService : IMyService
{
    private readonly ILogger _logger;
    private readonly ISqlSugarClient _sqlSugar;

    public MyService(ILogger logger, ISqlSugarClient sqlSugar)
    {
        _logger = logger;
        _sqlSugar = sqlSugar;
    }

    public void DoSomething()
    {
        // 使用注入的logger记录日志
        _logger.LogInformation("Doing something...");

        // 使用注入的SQLSugar进行数据库操作
        var result = _sqlSugar.Queryable().Where(u => u.UserName == "john_doe").ToList();

        // 执行其他操作...
    }
}

在上述示例中,我们首先创建了一个IMyService接口,然后实现了一个MyService类,该类通过构造函数注入了ILoggerISqlSugarClientILogger用于日志记录,ISqlSugarClient用于数据库操作。

接下来,你需要在Startup.csConfigureServices方法中配置SQLSugar和日志服务。以下是一个简化的示例:

public void ConfigureServices(IServiceCollection services)
{
    // 注册SQLSugar
    services.AddScoped(_ =>
    {
        // 配置SQLSugar连接信息,这里使用示例配置
        string connectionString = "YourConnectionStringHere";
        var db = new SqlSugarClient(new ConnectionConfig
        {
            ConnectionString = connectionString,
            DbType = DbType.SqlServer,
            InitKeyType = InitKeyType.Attribute
        });
        return db;
    });

    // 注册日志服务
    services.AddLogging(builder =>
    {
        builder.AddConsole();
        builder.AddDebug();
    });

    // 注册自定义服务
    services.AddScoped();
}

在上述示例中,我们使用AddScoped方法注册了ISqlSugarClientIMyService,并配置了SQLSugar的连接信息和日志服务。

现在,你可以在你的应用程序中使用IMyService来访问日志和SQLSugar的功能。例如:

public class MyController : Controller
{
    private readonly IMyService _myService;

    public MyController(IMyService myService)
    {
        _myService = myService;
    }

    public IActionResult Index()
    {
        _myService.DoSomething();
        return View();
    }
}

你可能感兴趣的:(C#,.netcore)