diff --git a/src/Senparc.CO2NET/Helpers/Serializers/SerializerHelper.cs b/src/Senparc.CO2NET/Helpers/Serializers/SerializerHelper.cs
index fa69bca6..46af2d3c 100644
--- a/src/Senparc.CO2NET/Helpers/Serializers/SerializerHelper.cs
+++ b/src/Senparc.CO2NET/Helpers/Serializers/SerializerHelper.cs
@@ -36,6 +36,9 @@ and limitations under the License.
修改标识:Senparc - 20180526
修改描述:v0.2.9 添加 SerializerHelper.GetObject(this string jsonString, Type type) 方法
+ 修改标识:Senparc - 20220331
+ 修改描述:v2.0.5.4 添加 GetObject() 方法的 settings 参数
+
----------------------------------------------------------------*/
@@ -87,10 +90,11 @@ public static string GetJsonString(object data, JsonSetting jsonSetting = null)
///
/// 反序列化对象类型
/// JSON字符串
+ /// JsonSerializerSettings
///
- public static T GetObject(this string jsonString)
+ public static T GetObject(this string jsonString, Newtonsoft.Json.JsonSerializerSettings settings = null)
{
- return (T)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, typeof(T));
+ return (T)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, typeof(T), settings);
//#if NET451
// JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
// return jsSerializer.Deserialize(jsonString);
@@ -104,10 +108,11 @@ public static T GetObject(this string jsonString)
///
/// JSON字符串
/// 反序列化类型
+ /// JsonSerializerSettings
///
- public static object GetObject(this string jsonString, Type type)
+ public static object GetObject(this string jsonString, Type type, Newtonsoft.Json.JsonSerializerSettings settings = null)
{
- return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, type);
+ return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, type, settings);
}
// #region 序列化对象 - byte[]
diff --git a/src/Senparc.CO2NET/Senparc.CO2NET.csproj b/src/Senparc.CO2NET/Senparc.CO2NET.csproj
index 95336b61..0e074462 100644
--- a/src/Senparc.CO2NET/Senparc.CO2NET.csproj
+++ b/src/Senparc.CO2NET/Senparc.CO2NET.csproj
@@ -1,192 +1,193 @@
-
- net451;netstandard2.0;netstandard2.1
- 2.0.5.3
- 8.0
- Senparc.CO2NET
- Senparc.CO2NET
- true
-
+
+ net451;netstandard2.0;netstandard2.1
+ 2.0.5.4
+ 8.0
+ Senparc.CO2NET
+ Senparc.CO2NET
+ true
+
Senparc.CO2NET 公共基础库
Senparc.CO2NET 开源项目:
https://github.com/Senparc/Senparc.CO2NET
- Senparc Copyright © 2004~2022
- .NET Core,.NET Framework,公共,基础库,CO2NET
- Senparc
- Senparc
- Apache-2.0
- https://github.com/Senparc/Senparc.CO2NET
- Senparc.CO2NET.dll
- Senparc.CO2NET 公共基础库
- https://github.com/Senparc/Senparc.CO2NET
- icon.jpg
-
- v0.1.0 构建基础代码,从 Senparc.Weixin 分离公共代码
- v0.1.1 优化代码,单元测试接近100%覆盖
- v0.1.2 添加 IDomainExtensionCacheStrategy.RegisterCacheStrategyDomain() 方法
- v0.1.3 添加 EntityUtility.FillSystemType()方法对 Int32[] 和 Int64[] 的处理
- v0.1.4 添加 SenparcSetting 全局配置属性
- v0.1.5 RegisterServiceExtension.AddSenparcGlobalServices() 方法可自动获取 SenparcSetting 全局设置
- v0.1.6 解决 XXE 漏洞,继承自 XmlDocument 对象,自动将 XmlResolver 设为 null
- v0.1.6.1 添加 Register.UseSenparcGlobal() 方
- v0.1.7 扩展 ReflectionHelper.GetStaticMember() 方法
- v0.1.8 .net core 下的 RegisterService.Start() 方法中,env 可以传入 null,以便在控制台等环境中完成注册
- v0.1.9
- 1、RegisterService 取消 public 的构造函数,统一使用 RegisterService.Start() 初始化
- 2、重构 Register.UseSenparcGlobal() 方法,承担扩展缓存扫描功能
- 3、添加 UnregisteredDomainCacheStrategyException 异常类型
- 4、 .net framework 和 .net core 版本统一强制在构造函数中要求提供 SenparcSetting 参数
- v0.1.10 调整 SenparcSetting 参数,将分布式缓存连接信息归入到 SenparcSetting 中
- v0.1.11 提供 SenparcSetting.BuildFromWebConfig() 方法
+ Senparc Copyright © 2004~2022
+ .NET Core,.NET Framework,公共,基础库,CO2NET
+ Senparc
+ Senparc
+ Apache-2.0
+ https://github.com/Senparc/Senparc.CO2NET
+ Senparc.CO2NET.dll
+ Senparc.CO2NET 公共基础库
+ https://github.com/Senparc/Senparc.CO2NET
+ icon.jpg
+
+ v0.1.0 构建基础代码,从 Senparc.Weixin 分离公共代码
+ v0.1.1 优化代码,单元测试接近100%覆盖
+ v0.1.2 添加 IDomainExtensionCacheStrategy.RegisterCacheStrategyDomain() 方法
+ v0.1.3 添加 EntityUtility.FillSystemType()方法对 Int32[] 和 Int64[] 的处理
+ v0.1.4 添加 SenparcSetting 全局配置属性
+ v0.1.5 RegisterServiceExtension.AddSenparcGlobalServices() 方法可自动获取 SenparcSetting 全局设置
+ v0.1.6 解决 XXE 漏洞,继承自 XmlDocument 对象,自动将 XmlResolver 设为 null
+ v0.1.6.1 添加 Register.UseSenparcGlobal() 方
+ v0.1.7 扩展 ReflectionHelper.GetStaticMember() 方法
+ v0.1.8 .net core 下的 RegisterService.Start() 方法中,env 可以传入 null,以便在控制台等环境中完成注册
+ v0.1.9
+ 1、RegisterService 取消 public 的构造函数,统一使用 RegisterService.Start() 初始化
+ 2、重构 Register.UseSenparcGlobal() 方法,承担扩展缓存扫描功能
+ 3、添加 UnregisteredDomainCacheStrategyException 异常类型
+ 4、 .net framework 和 .net core 版本统一强制在构造函数中要求提供 SenparcSetting 参数
+ v0.1.10 调整 SenparcSetting 参数,将分布式缓存连接信息归入到 SenparcSetting 中
+ v0.1.11 提供 SenparcSetting.BuildFromWebConfig() 方法
- v0.2.0 缓存策略提供超时设置接口
- v0.2.1 “当前扩展缓存策略没有进行注册”异常信息提供更加详细的缓存类型信息
- v0.2.2 RequestExtension 添加对 NETSTANDARD2_0 的支持
- v0.2.3 优化 RequestExtension.AbsoluteUri() 方法的输出结果
- v0.2.4
- 1、添加 CacheException 缓存异常类型
- 2、添加对 IMemoryCache 的未设置提示
- 3、优化 UnregisteredDomainCacheStrategyException,使用 CacheException 作为基类
- v0.2.5 优化 SenparcID,其中所有方法支持 .net standard 2.0
- v0.2.6 增加 DateTimeHelper.GetUnixDateTime() 方法,标记过期 GetWeixinDateTime() 方法
- v0.2.7 添加 ServerUtility
- v0.2.8 添加 SenparcDI.GetIServiceProvider() 方法,以支持其他依赖注入框架
- v0.2.9
- 1、优化 Config.RootDictionaryPath 方法,可自动获取默认值
- 2、添加 SerializerHelper.GetObject(this string jsonString, Type type) 方法
- v0.2.10 ObjectExtensions.ToJson() 方法提供 indented 方法,支持缩进格式
- v0.2.11 修复 .NET Core 下模拟表单 Post 参数无效的问题
- v0.2.14 ToJson() 方法优化
- v0.2.15 Post 方法添加 headerAddition参数
- v0.2.17 启用 SystemTime.Now,方便单元测试或紧急情况下改动系统当前时间
- v0.2.18 支持 Senparc.CO2NET.APM
- v0.3.0 升级 SenparcTrace,使用队列
- v0.3.1 更新 RequestUtility.GetQueryString() 方法
- v0.4.0 使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
- v0.4.1 为 UrlEncode() 和 UrlDecode() 方法添加在 .net framework 环境下的编码类型选择
- v0.4.2 优化 ServerUtility 类中方法在 docker 或 linux 环境下的路径识别
- v0.4.3 使用 DateTimeOffset 取代 DateTime
- v0.4.4 提供 SenparcTrace.RecordAPMLog 参数RequestUtility.Post.cs
- v0.5.0 提供对 .NET Core Console 的全面支持
- v0.5.1 ToJson() 方法添加 jsonSerializerSettings 参数
- v0.5.1.1 添加 Sex.未设置 枚举值
- v0.5.2 添加 SenparcDI.GetRequiredService() 方法,提供线程内独立 ServiceProvider 实例
- v0.6.0 提供缓存异步接口
- v0.6.1 完善 SystemTime,添加 NowTicks 属性
- v0.7.0 优化 HttpClient,重构 RequestUtility(包括 Post 和 Get),引入 HttpClientFactory 机制
- v0.7.1
- 1、添加 NowDiff 属性
- 2、添加 DayOfWeekString、DILifecycleType 配置和枚举
- v0.7.1
- 1、添加 NowDiff 属性
- 2、添加 DayOfWeekString、DILifecycleType 配置和枚举
- 3、修复:.NET 4.5 下 Post 方法未指定 content-type
- v0.7.2.1 解决 GetHttpClientHandler() 方法中 cookieContainer 为 null 可能发生的异常
- v0.7.3
- 1、添加 HttpClientFactory 多证书方案
- 2、使用 .ConfigureAwait(false) 避免异步锁死的情况
- v0.8
- 1、停止提供对 .NET 3.5/4.0 的支持
- 2、使用异步方法提升并发效率
- v0.8.3 添加 Stream 参数的 GetMD5() 方法
- v0.8.4 HttpUtility.HttpPost_Common_NetCore 所调用的额 CreateFileContent 取消对 fileName 参数的 UrlEncode 编码
- v0.8.5 解决 .NET Framework 4.5 下文件上传的 ContentType 设置问题
- v0.8.6 添加 FileHelper.FileInUse() 方法,用于判断文件是否正在被占用
- v0.8.7 RequestUtility.Post() 方法添加新功能:使用文件流模拟 Form 表单提交
- v0.8.8 改进 SenparcTrace 日志记录效率,提供异步方法处理
- v0.8.9 提供 AutoUnlockLogFile 参数,并针对日志文件可能被占用的情况尝试自动解锁。
- v0.8.10 提供 Config.HostingEnvironment 属性
- v0.9.0 添加 SystemTime.UtcDateTime 属性
- v0.9.1 提供带符号的 nuget 包(.snuget)
- v1.0.100 支持 .NET Core 3.0
- v1.0.101 RequestUtility.GetRequestMemoryStream() 增加对 .NET Core 3.0 AllowSynchronousIO 的设置
- v1.0.102
- 1、提供新的 app.UseSenparcGlobal() 注册方法
- 2、添加更多 SystemTime 辅助方法
- v1.0.103 优化异步方法
- v1.3.201 更新 Senparc.CO2NET.HttpUtility.Get.Download() 方法,修正 filename 判断正则表达式
- v1.4.400 修复 Download 方法 bug
+ v0.2.0 缓存策略提供超时设置接口
+ v0.2.1 “当前扩展缓存策略没有进行注册”异常信息提供更加详细的缓存类型信息
+ v0.2.2 RequestExtension 添加对 NETSTANDARD2_0 的支持
+ v0.2.3 优化 RequestExtension.AbsoluteUri() 方法的输出结果
+ v0.2.4
+ 1、添加 CacheException 缓存异常类型
+ 2、添加对 IMemoryCache 的未设置提示
+ 3、优化 UnregisteredDomainCacheStrategyException,使用 CacheException 作为基类
+ v0.2.5 优化 SenparcID,其中所有方法支持 .net standard 2.0
+ v0.2.6 增加 DateTimeHelper.GetUnixDateTime() 方法,标记过期 GetWeixinDateTime() 方法
+ v0.2.7 添加 ServerUtility
+ v0.2.8 添加 SenparcDI.GetIServiceProvider() 方法,以支持其他依赖注入框架
+ v0.2.9
+ 1、优化 Config.RootDictionaryPath 方法,可自动获取默认值
+ 2、添加 SerializerHelper.GetObject(this string jsonString, Type type) 方法
+ v0.2.10 ObjectExtensions.ToJson() 方法提供 indented 方法,支持缩进格式
+ v0.2.11 修复 .NET Core 下模拟表单 Post 参数无效的问题
+ v0.2.14 ToJson() 方法优化
+ v0.2.15 Post 方法添加 headerAddition参数
+ v0.2.17 启用 SystemTime.Now,方便单元测试或紧急情况下改动系统当前时间
+ v0.2.18 支持 Senparc.CO2NET.APM
+ v0.3.0 升级 SenparcTrace,使用队列
+ v0.3.1 更新 RequestUtility.GetQueryString() 方法
+ v0.4.0 使用 .NETStandard2.0 统一支持 .NET Core,放弃对 .NET Core 1.x 的单独适配
+ v0.4.1 为 UrlEncode() 和 UrlDecode() 方法添加在 .net framework 环境下的编码类型选择
+ v0.4.2 优化 ServerUtility 类中方法在 docker 或 linux 环境下的路径识别
+ v0.4.3 使用 DateTimeOffset 取代 DateTime
+ v0.4.4 提供 SenparcTrace.RecordAPMLog 参数RequestUtility.Post.cs
+ v0.5.0 提供对 .NET Core Console 的全面支持
+ v0.5.1 ToJson() 方法添加 jsonSerializerSettings 参数
+ v0.5.1.1 添加 Sex.未设置 枚举值
+ v0.5.2 添加 SenparcDI.GetRequiredService() 方法,提供线程内独立 ServiceProvider 实例
+ v0.6.0 提供缓存异步接口
+ v0.6.1 完善 SystemTime,添加 NowTicks 属性
+ v0.7.0 优化 HttpClient,重构 RequestUtility(包括 Post 和 Get),引入 HttpClientFactory 机制
+ v0.7.1
+ 1、添加 NowDiff 属性
+ 2、添加 DayOfWeekString、DILifecycleType 配置和枚举
+ v0.7.1
+ 1、添加 NowDiff 属性
+ 2、添加 DayOfWeekString、DILifecycleType 配置和枚举
+ 3、修复:.NET 4.5 下 Post 方法未指定 content-type
+ v0.7.2.1 解决 GetHttpClientHandler() 方法中 cookieContainer 为 null 可能发生的异常
+ v0.7.3
+ 1、添加 HttpClientFactory 多证书方案
+ 2、使用 .ConfigureAwait(false) 避免异步锁死的情况
+ v0.8
+ 1、停止提供对 .NET 3.5/4.0 的支持
+ 2、使用异步方法提升并发效率
+ v0.8.3 添加 Stream 参数的 GetMD5() 方法
+ v0.8.4 HttpUtility.HttpPost_Common_NetCore 所调用的额 CreateFileContent 取消对 fileName 参数的 UrlEncode 编码
+ v0.8.5 解决 .NET Framework 4.5 下文件上传的 ContentType 设置问题
+ v0.8.6 添加 FileHelper.FileInUse() 方法,用于判断文件是否正在被占用
+ v0.8.7 RequestUtility.Post() 方法添加新功能:使用文件流模拟 Form 表单提交
+ v0.8.8 改进 SenparcTrace 日志记录效率,提供异步方法处理
+ v0.8.9 提供 AutoUnlockLogFile 参数,并针对日志文件可能被占用的情况尝试自动解锁。
+ v0.8.10 提供 Config.HostingEnvironment 属性
+ v0.9.0 添加 SystemTime.UtcDateTime 属性
+ v0.9.1 提供带符号的 nuget 包(.snuget)
+ v1.0.100 支持 .NET Core 3.0
+ v1.0.101 RequestUtility.GetRequestMemoryStream() 增加对 .NET Core 3.0 AllowSynchronousIO 的设置
+ v1.0.102
+ 1、提供新的 app.UseSenparcGlobal() 注册方法
+ 2、添加更多 SystemTime 辅助方法
+ v1.0.103 优化异步方法
+ v1.3.201 更新 Senparc.CO2NET.HttpUtility.Get.Download() 方法,修正 filename 判断正则表达式
+ v1.4.400 修复 Download 方法 bug
- v1.5.2
- 1、增加和丰富 EncryptHelper 中加密方法(SHA1、AesGcmDecrypt、CRC32)
- 2、添加 FileHelper 中 GetFileHash 方法
- 3、LocalCacheLock释放锁之前增加是否锁成功的判断
+ v1.5.2
+ 1、增加和丰富 EncryptHelper 中加密方法(SHA1、AesGcmDecrypt、CRC32)
+ 2、添加 FileHelper 中 GetFileHash 方法
+ 3、LocalCacheLock释放锁之前增加是否锁成功的判断
- v2.0.2 添加 XmlUtility.Deserialize() 重写方法
- v2.0.3 修改HttpClient请求超时的实现方式
- v2.0.4 XmlUtility 反序列化(Deserialize) 全面添加 rootNodeName 参数
- v2.0.5 添加 WaitingFor() 方法
-
- https://github.com/Senparc/Senparc.CO2NET
- Debug;Release;Test
-
-
- ..\BuildOutPut
- TRACE;RELEASE
-
-
- ..\BuildOutPut
- $(DefineConstants);RELEASE
- ..\BuildOutPut\Senparc.CO2NET.xml
- true
- pdbonly
- prompt
- MinimumRecommendedRules.ruleset
-
-
- ..\BuildOutPut\
- ..\BuildOutPut\net451\Senparc.CO2NET.xml
-
-
-
- ..\BuildOutPut\
- ..\BuildOutPut\netstandard2.0\Senparc.CO2NET.xml
-
-
- ..\BuildOutPut\
- ..\BuildOutPut\netstandard2.1\Senparc.CO2NET.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ ..\BuildOutPut\
+ ..\BuildOutPut\netstandard2.0\Senparc.CO2NET.xml
+
+
+ ..\BuildOutPut\
+ ..\BuildOutPut\netstandard2.1\Senparc.CO2NET.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file