2023年6月

SysDictEnum dictEnum = new SysDictEnum( enumnum(InventTransType) );
dictEnum.value2Label(InventTrans.TransType);

    JObject             jObj;
    JArray              dataJArray = new Newtonsoft.Json.Linq.JArray();

    jObj  = new JObject();

    jObj.Add("code", ecoResCategory.code);
    jObj.Add("name", ecoResCategory.Name);
    dataJArray.Add(jObj);

    keyinfo = int642Str( ecoResCategory.RecId );
    return strReplace(DataJArray.ToString(), "\r\n", "");

通常意义上的三层架构是指:

表示层 / 表现层 / (用户)界面层(UI:User Interface layer)

业务逻辑层 / 应用程序层 / 领域层(BLL:Business Logic Layer)

数据访问层 / 数据层 / 持久层(DAL:Data access layer)

  • 瞬态
  • 作用域
  • 静态

注册:
builder.Serivces.AddTransient< 抽象Service, XXXService>();//若注入IimplementationService,则注入参数类型应为抽象类。

注入:
-在Controller/Service构造器中将作为参数注入;
-也能在minimalApi里作为参数注入;

生命周期:

  • Transient
    瞬时

     builder.Serivces.AddTransient< Isever, sever>();
     builder.Serivces.AddTransient(typeof(Isever),typeOf(sever));
    
  • Scoped
    线程/作用域
    类似会话。

     builder.Serivces.AddScoped< Isever, sever>();
     builder.Serivces.AddScoped(typeof(Isever),typeOf(sever));
    
  • Singleton
    单例
    可用在数据库、redis连接上。

     builder.Serivces.AddSingleton< Isever, sever>();
     builder.Serivces.AddSingleton(typeof(Isever),typeOf(sever));
     builder.Serivces.AddSingleton<Isever>(Server sever));
    

依赖倒置

注入方式:

  • 构造函数
  • 属性注入
  • 方法注入