Browse Source

SetProperty方法支持Null 值

懒得勤快 2 years ago
parent
commit
7533bb1b98

+ 7 - 2
Masuit.Tools.Abstractions/Masuit.Tools.Abstractions.csproj

@@ -3,7 +3,7 @@
         <TargetFrameworks>netstandard2.0;netstandard2.1;net461;net5;net6;net7</TargetFrameworks>
         <TargetFrameworks>netstandard2.0;netstandard2.1;net461;net5;net6;net7</TargetFrameworks>
         <LangVersion>latest</LangVersion>
         <LangVersion>latest</LangVersion>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
         <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
-        <Version>2.5.9.2</Version>
+        <Version>2.5.9.3</Version>
         <Authors>懒得勤快</Authors>
         <Authors>懒得勤快</Authors>
         <Description>Masuit.Tools基础公共库,包含一些常用的操作类,大都是静态类,加密解密,反射操作,Excel简单导出,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展等常用封装。</Description>
         <Description>Masuit.Tools基础公共库,包含一些常用的操作类,大都是静态类,加密解密,反射操作,Excel简单导出,权重随机筛选算法,分布式短id,表达式树,linq扩展,文件压缩,多线程下载和FTP客户端,硬件信息,字符串扩展方法,日期时间扩展操作,中国农历,大文件拷贝,图像裁剪,验证码,断点续传,集合扩展等常用封装。</Description>
         <Copyright>懒得勤快,长空X</Copyright>
         <Copyright>懒得勤快,长空X</Copyright>
@@ -48,7 +48,6 @@
         <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
         <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
         <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
         <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
         <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
         <PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
-        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
         <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta15" />
         <PackageReference Include="SixLabors.ImageSharp.Drawing" Version="1.0.0-beta15" />
         <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
         <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
         <PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
         <PackageReference Include="System.Configuration.ConfigurationManager" Version="7.0.0" />
@@ -60,26 +59,31 @@
     <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
     <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.1'">
     <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.1'">
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup Condition=" '$(TargetFramework)' == 'net5'">
     <ItemGroup Condition=" '$(TargetFramework)' == 'net5'">
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup Condition=" '$(TargetFramework)' == 'net6'">
     <ItemGroup Condition=" '$(TargetFramework)' == 'net6'">
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="3.0.0" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup Condition=" '$(TargetFramework)' == 'net7'">
     <ItemGroup Condition=" '$(TargetFramework)' == 'net7'">
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
         <PackageReference Include="System.Diagnostics.PerformanceCounter" Version="7.0.0" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="3.0.0" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
     <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
@@ -89,6 +93,7 @@
         <PackageReference Include="System.Net.Http" Version="4.3.4" />
         <PackageReference Include="System.Net.Http" Version="4.3.4" />
         <PackageReference Include="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
         <PackageReference Include="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
         <PackageReference Include="System.ValueTuple" version="4.5.0" targetFramework="net461" />
         <PackageReference Include="System.ValueTuple" version="4.5.0" targetFramework="net461" />
+        <PackageReference Include="SixLabors.ImageSharp" Version="2.1.3" />
     </ItemGroup>
     </ItemGroup>
 
 
     <ItemGroup>
     <ItemGroup>

+ 7 - 3
Masuit.Tools.Abstractions/Models/Email.cs

@@ -6,6 +6,7 @@ using System.Net.Mail;
 namespace Masuit.Tools.Models
 namespace Masuit.Tools.Models
 {
 {
 #pragma warning disable 1591
 #pragma warning disable 1591
+
 	public class Email : Disposable
 	public class Email : Disposable
 	{
 	{
 		/// <summary>
 		/// <summary>
@@ -62,7 +63,8 @@ namespace Masuit.Tools.Models
 		{
 		{
 			if (string.IsNullOrEmpty(Tos)) return null;
 			if (string.IsNullOrEmpty(Tos)) return null;
 			var mailMessage = new MailMessage();
 			var mailMessage = new MailMessage();
-			//多个接收者                
+
+			//多个接收者
 			foreach (var str in Tos.Split(','))
 			foreach (var str in Tos.Split(','))
 			{
 			{
 				mailMessage.To.Add(str);
 				mailMessage.To.Add(str);
@@ -75,7 +77,7 @@ namespace Masuit.Tools.Models
 			mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
 			mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
 			mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
 			mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
 			mailMessage.Priority = MailPriority.High;
 			mailMessage.Priority = MailPriority.High;
-			foreach (var item in Attachments)
+			foreach (var item in Attachments.AsNotNull())
 			{
 			{
 				mailMessage.Attachments.Add(item);
 				mailMessage.Attachments.Add(item);
 			}
 			}
@@ -104,6 +106,7 @@ namespace Masuit.Tools.Models
 		public void SendAsync(Action<string> completedCallback)
 		public void SendAsync(Action<string> completedCallback)
 		{
 		{
 			if (MailMessage == null) return;
 			if (MailMessage == null) return;
+
 			//发送邮件回调方法
 			//发送邮件回调方法
 			_actionSendCompletedCallback = completedCallback;
 			_actionSendCompletedCallback = completedCallback;
 			SmtpClient.SendCompleted += SendCompletedCallback;
 			SmtpClient.SendCompleted += SendCompletedCallback;
@@ -160,5 +163,6 @@ namespace Masuit.Tools.Models
 			Attachments.ForEach(a => a.Dispose());
 			Attachments.ForEach(a => a.Dispose());
 		}
 		}
 	}
 	}
+
 #pragma warning restore 1591
 #pragma warning restore 1591
-}
+}

+ 3 - 3
Masuit.Tools.Abstractions/Reflection/ReflectionUtil.cs

@@ -90,9 +90,9 @@ namespace Masuit.Tools.Reflection
             var parameter = Expression.Parameter(typeof(T), "e");
             var parameter = Expression.Parameter(typeof(T), "e");
             var property = Expression.PropertyOrField(parameter, name);
             var property = Expression.PropertyOrField(parameter, name);
             var before = Expression.Lambda(property, parameter).Compile().DynamicInvoke(obj);
             var before = Expression.Lambda(property, parameter).Compile().DynamicInvoke(obj);
-            if (value.Equals(before))
+            if (value == before)
             {
             {
-                return value.ToString();
+                return value?.ToString();
             }
             }
 
 
             if (property.Type.IsGenericType && property.Type.GetGenericTypeDefinition() == typeof(Nullable<>))
             if (property.Type.IsGenericType && property.Type.GetGenericTypeDefinition() == typeof(Nullable<>))
@@ -101,7 +101,7 @@ namespace Masuit.Tools.Reflection
             }
             }
             else
             else
             {
             {
-                var valueExpression = Expression.Parameter(value.GetType(), "v");
+                var valueExpression = Expression.Parameter(property.Type, "v");
                 var assign = Expression.Assign(property, valueExpression);
                 var assign = Expression.Assign(property, valueExpression);
                 Expression.Lambda(assign, parameter, valueExpression).Compile().DynamicInvoke(obj, value);
                 Expression.Lambda(assign, parameter, valueExpression).Compile().DynamicInvoke(obj, value);
             }
             }

+ 1 - 1
Masuit.Tools.AspNetCore/Masuit.Tools.AspNetCore.csproj

@@ -17,7 +17,7 @@
         <Product>Masuit.Tools.AspNetCore</Product>
         <Product>Masuit.Tools.AspNetCore</Product>
         <PackageId>Masuit.Tools.AspNetCore</PackageId>
         <PackageId>Masuit.Tools.AspNetCore</PackageId>
         <LangVersion>latest</LangVersion>
         <LangVersion>latest</LangVersion>
-        <Version>1.1.9.2</Version>
+        <Version>1.1.9.3</Version>
         <RepositoryType></RepositoryType>
         <RepositoryType></RepositoryType>
         <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
         <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
         <FileVersion>1.1.9</FileVersion>
         <FileVersion>1.1.9</FileVersion>

+ 1 - 1
Masuit.Tools.Core/Masuit.Tools.Core.csproj

@@ -6,7 +6,7 @@
 官网教程:https://ldqk.org/55
 官网教程:https://ldqk.org/55
 github:https://github.com/ldqk/Masuit.Tools
 github:https://github.com/ldqk/Masuit.Tools
         </Description>
         </Description>
-        <Version>2.5.9.2</Version>
+        <Version>2.5.9.3</Version>
         <Copyright>Copyright © 懒得勤快</Copyright>
         <Copyright>Copyright © 懒得勤快</Copyright>
         <PackageProjectUrl>https://github.com/ldqk/Masuit.Tools</PackageProjectUrl>
         <PackageProjectUrl>https://github.com/ldqk/Masuit.Tools</PackageProjectUrl>
         <PackageTags>Masuit.Tools,工具库,Utility,Crypt,Extensions</PackageTags>
         <PackageTags>Masuit.Tools,工具库,Utility,Crypt,Extensions</PackageTags>

+ 1 - 1
Masuit.Tools.Net45/package.nuspec

@@ -2,7 +2,7 @@
 <package>
 <package>
   <metadata>
   <metadata>
     <id>Masuit.Tools.Net45</id>
     <id>Masuit.Tools.Net45</id>
-    <version>2.5.9.2</version>
+    <version>2.5.9.3</version>
     <title>Masuit.Tools</title>
     <title>Masuit.Tools</title>
     <authors>懒得勤快</authors>
     <authors>懒得勤快</authors>
     <owners>masuit.com</owners>
     <owners>masuit.com</owners>

+ 1 - 1
Masuit.Tools/Masuit.Tools.csproj

@@ -195,7 +195,7 @@
       <Version>1.0.0-beta14</Version>
       <Version>1.0.0-beta14</Version>
     </PackageReference>
     </PackageReference>
     <PackageReference Include="StackExchange.Redis">
     <PackageReference Include="StackExchange.Redis">
-      <Version>2.6.90</Version>
+      <Version>2.6.96</Version>
     </PackageReference>
     </PackageReference>
     <PackageReference Include="System.ValueTuple">
     <PackageReference Include="System.ValueTuple">
       <Version>4.5.0</Version>
       <Version>4.5.0</Version>

+ 1 - 1
Masuit.Tools/package.nuspec

@@ -2,7 +2,7 @@
 <package>
 <package>
   <metadata>
   <metadata>
     <id>Masuit.Tools.Net</id>
     <id>Masuit.Tools.Net</id>
-    <version>2.5.9.2</version>
+    <version>2.5.9.3</version>
     <title>Masuit.Tools</title>
     <title>Masuit.Tools</title>
     <authors>懒得勤快</authors>
     <authors>懒得勤快</authors>
     <owners>masuit.com</owners>
     <owners>masuit.com</owners>

+ 1 - 1
Test/Masuit.Tools.Abstractions.Test/Masuit.Tools.Abstractions.Test.csproj

@@ -13,7 +13,7 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
     <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
       <PrivateAssets>all</PrivateAssets>
       <PrivateAssets>all</PrivateAssets>

+ 3 - 3
Test/Masuit.Tools.Core.Test/Masuit.Tools.Core.Test.csproj

@@ -9,9 +9,9 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.2" />
-    <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
+    <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.3" />
+    <PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
     <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit" Version="2.4.2" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
       <PrivateAssets>all</PrivateAssets>
       <PrivateAssets>all</PrivateAssets>