AutoCSer 只支持代码配置(需要文件配置的自行处理),可以利用 C# 的语言特性可以支持各种抽象行为,相对于文件配置,有更强的健壮性与灵活性。当然代码配置并不能完全替换文件配置,比如同一个执行程序需要不同配置的时候可能就需要文件配置作为辅助配置存在。
可以在程序集名称为 AutoCSer.Config 或者以 AutoCSer.Config. 开头的项目中添加公用配置,也可以在当前可执行项目中添加个性化配置。
个性化配置的优先级高于公用配置,公用配置的优先级高于 AutoCSer 默认配置。
添加一个配置容器类型,需要给该类型添加配置容器类型声明 [AutoCSer.Config.Type]。
在配置容器类型中添加具体的配置项,支持静态字段或者不带参数的静态属性,需要给该配置项添加配置项申明 [AutoCSer.Configuration.Member]
配置项申明有一个 string 类型的参数 Name 用于标识该配置的名称,默认为 string.Empty 表示全局默认配置,否则表示特定应用配置的唯一标识。
获取配置可以访问 AutoCSer.Config.Loader 下的两个静态方法,Type 表示需要获取的目标配置数据类型,也就是配置项的字段或者属性的定义类型。
/// <summary> /// 获取配置项数据 /// </summary> /// <typeparam name="valueType">配置数据类型</typeparam> /// <param name="name" />配置名称</param> /// <returns>配置项数据</returns> public static valueType Get<valueType>(string name)
/// <summary> /// 获取配置项数据 /// </summary> /// <param name="type" />配置类型</param> /// <param name="name" />配置名称</param> /// <returns>配置项数据</returns> public static object GetObject(Type type, string name = "")
下面列出 AutoCSer 各组件中可配置的全局默认配置类型:
TCP 接口服务框架 TCP 函数服务框架
. AutoCSer.Net.TcpInternalServer.ServerSocketTaskConfig TCP 内部服务端套接字任务处理配置
. AutoCSer.Net.TcpServer.TaskConfig TCP 任务处理配置
前后端一体 WEB 视图框架
. AutoCSer.Net.Http.Config HTTP 配置
ORM 内存索引缓存框架
. AutoCSer.Sql.Config SQL 数据库配置
日志型内存数据库缓存服务组件
. AutoCSer.CacheServer.MasterServerConfig 缓存主服务配置
. AutoCSer.CacheServer.SlaveServerConfig 缓存从服务配置
二进制数据序列化
. AutoCSer.BinarySerializeAttribute 序列化类型配置申明
. AutoCSer.BinarySerialize.SerializeConfig 序列化配置参数
. AutoCSer.BinarySerialize.DeSerializeConfig 反序列化配置参数
JSON 序列化
. AutoCSer.Json.SerializeAttribute 序列化类型配置申明
. AutoCSer.Json.SerializeConfig 序列化配置参数
. AutoCSer.Json.ParseAttribute 解析类型配置申明
. AutoCSer.Json.ParseConfig 解析配置参数
XML 序列化
. AutoCSer.Xml.SerializeAttribute 序列化类型配置申明
. AutoCSer.Xml.SerializeConfig 序列化配置参数
. AutoCSer.Xml.ParseConfig 解析配置参数
. AutoCSer.Log.Config 日志配置