Skip to content

配置注入

在项目中,需要读取配置时,可以用到AsDI.Core.ConfigAsDI.Core.Config可通过NuGet进行安装

sh
dotnet add package AsDI.Core --version 2.0.0
dotnet add package AsDI.Core.Config --version 2.0.0

配置通常写在AppSettings.json文件中,也可能会配置在Nacos等配置中心。在AsDI中使用配置,可以通过 [value] 标注去获取配置信息。

基本示例

例如,有这样一份配置:

json
{
  "AsDI": {
    "ConnectionString": "data source=10.130.1.120; user name=root; password=root;"
  }
}

读取配置时,只需要写如下代码即可:

C#
[Include]
public class Program
{
    [Value("AsDI.ConnectionString")]
    private static string connectionStr;

    static void Main(string[] args)
    {
        AsDIContext.Start();
        Console.WriteLine(connectionStr);
    }
}

此时,运行此程序,将会输出:

sh
> data source=10.130.1.120; user name=root; password=root;

读取配置为对象

配置如下:

json
{
  "AsDI": {
    "DbConfig": {
      "DbType": "Sql Server",
      "ConnectionString": "data source=10.130.1.120; user name=root; password=root;",
      "AutoCommit": true,
      "ReceiveTimeout": 5000
    }
  }
}

读取配置,如下:

C#
public class DbConfig
{
    public string DbType { get; set; }

    public string ConnectionString { get; set; }

    public bool AutoCommit { get; set; }

    public int ReceiveTimeout { get; set; }

    public override string ToString()
    {
        return "DbType:" + DbType + "\n" +
            "ConnectionString:" + ConnectionString + "\n" +
            "AutoCommit:" + AutoCommit + "\n" +
            "ReceiveTimeout:" + ReceiveTimeout;
    }
}

[Include]
public class Program
{
    [Value("AsDI.DbConfig")]
    private static DbConfig dbConfig;

    static void Main(string[] args)
    {
        AsDIContext.Start();
        Console.WriteLine(dbConfig);
    }
}

此时,运行此程序,将会输出:

sh
> DbType:Sql Server
> ConnectionString:data source=10.130.1.120; user name=root; password=root;
> AutoCommit:True
> ReceiveTimeout:5000

沪ICP备2025119739号