## Falcon.SugarApi ### 引入nuget包可能默认不会包含Falcon.SugarApi.xml文件,但是没有这个文件swagger会少很多说明,也可能会报错 将一下代码包含在.csproj项目文件中可以复制包中的xml文件到输出目录和发布目录。 ```xml ``` ### WebApi扩展模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/ApiDefinistions) > `ApiControllerBase`是所有webapi基类,实现数据库、log、异常等基础功能。 > `ApiBaseOptionController<>`带有基本操作方法的webapi基类,除了`ApiControllerBase`功能外还提供基础增删改查功能。 ### Swagger扩展模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/Swagger) > `waggerGenOptions.AddXmlEnumEnable`方法可以为枚举类型增加注释。 ### SugarDbContext扩展模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/DatabaseDefinitions) > 通过`IServiceCollection.AddSugarApiDbContext` 注册`SugarDbContext`对象,该对象通过`SugarConnectionConfig`配置数据库链接。 > `DbSet`数据库表定义,支持表数据查询。 > `SugarDbTables`数据库表集合基类,可以继承该类并在其中定义`DbSet`属性,这些属性会自动实例化。 > `SugarTableBase`标准表基类,继承该类可提供数据表基础功能,比如ID,创建和修改时间等。 ### 后台任务BackTask模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/BackTask) > 继承`BackgroundLongTask`可以实现一个长期位于后台执行的对象,该类通过`IServiceCollection.AddHostedService<>'进行注册。 > `RunTimespan`属性设置执行的时间间隔的秒数。 > 重写`RunAsync`方法实现一个异步任务。 > 另外可以重写`OnStart`后台任务开始,`OnStop`后台任务结束,`OnCompleted`一次执行完成和`OnException`执行中引发未处理的异常。 ### 数据缓冲模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/Cache) > 通过`IServiceCollection.AddSugarRedisCache` 或 `IServiceCollection.AddSugarMemoryCache`方法注册缓冲器。 > 通过注入 `ISugarCache`同步接口 或 `ISugarCacheAsync`异步接口获取组件。 > 通过接口的`Get`和`Set`方法获取和保存缓冲值。 ### XML序列化扩展模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/XmlSerialize) > `IServiceCollection.AddXmlSerializeFactory`方法注册xml序列化工厂`XmlSerializeFactory`,可以通过该工厂实例化一个XML序列化器。 ### JSON序列化扩展模块 [进入](/Falcon/Falcon.SugarApi/src/branch/master/Falcon.SugarApi/JsonSerialize) > `IServiceCollection.AddJsonSerializeFactory`方法注册Json序列化工厂`JsonSerializeFactory`,可以通过该工厂实例化一个Json序列化器。 > `ArrayStringJsonConverterAttribute`特性标记字符串是个数组字符串,当进行序列化时候会被序列化为数组。 ### 字符串扩展方法 > `IsNullOrEmpty()`和`IsNotNullOrEmpty()`方法返回字符串是否为空。 > `SplitStr()`默认实现按照`',', ',', ';', ';', '.', '。'`对字符串进行分割。 ### Object扩展方法 > `CloneTo`和`CloneFrom`实现将对象属性赋值到目标对象同名属性中,此为浅表复制。 ### IEnumerable扩展方法 > `ToDataTable`和`ToDataTable<>`分别实现将枚举类型转换为DataTable的方法,区别是一个针对Object枚举一个针对具体类型枚举,尽量使用泛型版本,更加高效。