diff --git a/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs b/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs
index 20d3fd9e2..fa771a8e0 100644
--- a/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs
+++ b/src/Admin/ThingsGateway.NewLife.X/Extension/ProcessHelper.cs
@@ -463,7 +463,7 @@ public static class ProcessHelper
StandardOutputEncoding = outputEncoding,
StandardErrorEncoding = outputEncoding,
};
- var process = Process.Start(psi);
+ using var process = Process.Start(psi);
if (process == null) return null;
if (msWait > 0 && !process.WaitForExit(msWait))
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
index 2d3bb0f7c..239214f2d 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/CodeFirstProvider/CodeFirstProvider.cs
@@ -13,7 +13,7 @@ namespace ThingsGateway.SqlSugar
///
/// 用于同步操作的锁对象
///
- internal static object LockObject = new object();
+ internal static readonly object LockObject = new object();
///
/// SqlSugar提供者实例
///
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs
index 9a8de48da..41503b6d4 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilder.cs
@@ -31,61 +31,6 @@ namespace ThingsGateway.SqlSugar
/// 数据记录器
///
private IDataRecord DataRecord;
- ///
- /// IsDBNull方法
- ///
- private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod(nameof(IDataRecord.IsDBNull), new Type[] { typeof(int) });
- ///
- /// GetBoolean方法
- ///
- private static readonly MethodInfo getBoolean = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetBoolean), new Type[] { typeof(int) });
- ///
- /// GetByte方法
- ///
- private static readonly MethodInfo getByte = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetByte), new Type[] { typeof(int) });
- ///
- /// GetDateTime方法
- ///
- private static readonly MethodInfo getDateTime = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDateTime), new Type[] { typeof(int) });
- private static readonly MethodInfo getDecimal = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDecimal), new[] { typeof(int) });
- private static readonly MethodInfo getDouble = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDouble), new[] { typeof(int) });
- private static readonly MethodInfo getFloat = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetFloat), new[] { typeof(int) });
- private static readonly MethodInfo getGuid = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetGuid), new[] { typeof(int) });
- private static readonly MethodInfo getInt16 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt16), new[] { typeof(int) });
- private static readonly MethodInfo getInt32 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt32), new[] { typeof(int) });
- private static readonly MethodInfo getInt64 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt64), new[] { typeof(int) });
- private static readonly MethodInfo getString = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetString), new[] { typeof(int) });
- private static readonly MethodInfo getdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffset));
- private static readonly MethodInfo getdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffsetDate));
- private static readonly MethodInfo getStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetStringGuid));
- private static readonly MethodInfo getXelement = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetXelement));
- private static readonly MethodInfo getConvertStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertStringGuid));
- private static readonly MethodInfo getEnum = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEnum));
- private static readonly MethodInfo getConvertString = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertString));
- private static readonly MethodInfo getConvertFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertFloat));
- private static readonly MethodInfo getConvertBoolean = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertBoolean));
- private static readonly MethodInfo getConvertByte = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertByte));
- private static readonly MethodInfo getConvertChar = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertChar));
- private static readonly MethodInfo getConvertDateTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDateTime));
- private static readonly MethodInfo getConvertTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertTime));
- private static readonly MethodInfo getTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetTime));
- private static readonly MethodInfo getConvertDecimal = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDecimal));
- private static readonly MethodInfo getConvertDouble = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDouble));
- private static readonly MethodInfo getConvertDoubleToFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDoubleToFloat));
- private static readonly MethodInfo getConvertGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertGuid));
- private static readonly MethodInfo getConvertInt16 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt16));
- private static readonly MethodInfo getConvertInt32 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt32));
- private static readonly MethodInfo getConvertInt64 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt64));
- private static readonly MethodInfo getConvertEnum_Null = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertEnum_Null));
- private static readonly MethodInfo getConvertdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffset));
- private static readonly MethodInfo getConvertdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffsetDate));
- private static readonly MethodInfo getOtherNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOtherNull));
- private static readonly MethodInfo getOther = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOther));
- private static readonly MethodInfo getJson = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetJson));
- private static readonly MethodInfo getArray = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetArray));
- private static readonly MethodInfo getEntity = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEntity), new[] { typeof(SqlSugarProvider) });
- private static readonly MethodInfo getMyIntNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyIntNull));
- private static readonly MethodInfo getMyInt = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyInt));
///
/// 加载委托
@@ -219,7 +164,7 @@ namespace ThingsGateway.SqlSugar
Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
- generator.Emit(OpCodes.Callvirt, isDBNullMethod);
+ generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
var method = (columnInfo.SqlParameterDbType as Type).GetMethod(nameof(ISugarDataConverter.QueryConverter));
@@ -253,12 +198,12 @@ namespace ThingsGateway.SqlSugar
if (columnInfo.IsJson)
{
- MethodInfo jsonMethod = getJson.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
+ MethodInfo jsonMethod = IDataReaderEntityBuilderHelpers.getJson.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
int i = DataRecord.GetOrdinal(fieldName);
Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
- generator.Emit(OpCodes.Callvirt, isDBNullMethod);
+ generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0);
@@ -278,12 +223,12 @@ namespace ThingsGateway.SqlSugar
}
if (columnInfo.IsArray)
{
- MethodInfo arrayMehtod = getArray.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
+ MethodInfo arrayMehtod = IDataReaderEntityBuilderHelpers.getArray.MakeGenericMethod(columnInfo.PropertyInfo.PropertyType);
int i = DataRecord.GetOrdinal(fieldName);
Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
- generator.Emit(OpCodes.Callvirt, isDBNullMethod);
+ generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0);
@@ -298,7 +243,7 @@ namespace ThingsGateway.SqlSugar
Label endIfLabel = generator.DefineLabel();
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
- generator.Emit(OpCodes.Callvirt, isDBNullMethod);
+ generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0);
@@ -332,7 +277,7 @@ namespace ThingsGateway.SqlSugar
generator.Emit(OpCodes.Ldarg_0);
generator.Emit(OpCodes.Ldc_I4, i);
- generator.Emit(OpCodes.Callvirt, isDBNullMethod);
+ generator.Emit(OpCodes.Callvirt, IDataReaderEntityBuilderHelpers.isDBNullMethod);
generator.Emit(OpCodes.Brtrue, endIfLabel);
generator.Emit(OpCodes.Ldloc, result);
generator.Emit(OpCodes.Ldarg_0);
@@ -378,7 +323,7 @@ namespace ThingsGateway.SqlSugar
{
if (provider.IsNoSql)
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method);
else
@@ -393,39 +338,39 @@ namespace ThingsGateway.SqlSugar
{
if (bindPropertyType.IsEnum())
{
- method = isNullableType ? getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : getEnum.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getEnum.MakeGenericMethod(bindPropertyType);
}
else if (bindPropertyType == UtilConstants.IntType)
{
- method = isNullableType ? getConvertInt32 : getInt32;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt32 : IDataReaderEntityBuilderHelpers.getInt32;
}
else if (bindPropertyType == UtilConstants.DateTimeOffsetType && SugarCompatible.IsFramework)
{
- method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
}
else if (bindPropertyType == UtilConstants.ByteType)
{
- method = isNullableType ? getConvertByte : getByte;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
}
else if (bindPropertyType == UtilConstants.StringType && dbTypeName.EqualCase("timestamp"))
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
else if (dbTypeName.EqualCase("STRING"))
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
else if (bindPropertyType == UtilConstants.StringType && validPropertyName == "int")
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
else if (bindPropertyType == UtilConstants.StringType)
{
- method = getString;
+ method = IDataReaderEntityBuilderHelpers.getString;
}
else
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method);
@@ -445,13 +390,13 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.@int:
CheckType(bind.IntThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName.IsContainsIn("int", "int32"))
- method = isNullableType ? getConvertInt32 : getInt32;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt32 : IDataReaderEntityBuilderHelpers.getInt32;
if (bindPropertyTypeName.IsContainsIn("int64"))
method = null;
if (bindPropertyTypeName.IsContainsIn("byte"))
- method = isNullableType ? getConvertByte : getByte;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
if (bindPropertyTypeName.IsContainsIn("int16"))
- method = isNullableType ? getConvertInt16 : getInt16;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt16 : IDataReaderEntityBuilderHelpers.getInt16;
if (bindPropertyTypeName == "uint32" && this.Context.CurrentConnectionConfig.DbType.IsIn(DbType.MySql, DbType.MySqlConnector))
method = null;
if (bindPropertyTypeName == "int16")
@@ -459,21 +404,21 @@ namespace ThingsGateway.SqlSugar
break;
case CSharpDataType.@bool:
if (bindPropertyTypeName == "bool" || bindPropertyTypeName == "boolean")
- method = isNullableType ? getConvertBoolean : getBoolean;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertBoolean : IDataReaderEntityBuilderHelpers.getBoolean;
break;
case CSharpDataType.@string:
if (this.Context.CurrentConnectionConfig.DbType != DbType.Oracle)
{
CheckType(bind.StringThrow, bindPropertyTypeName, validPropertyName, propertyName);
}
- method = getString;
+ method = IDataReaderEntityBuilderHelpers.getString;
if (bindPropertyTypeName == "guid")
{
- method = isNullableType ? getConvertStringGuid : getStringGuid;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertStringGuid : IDataReaderEntityBuilderHelpers.getStringGuid;
}
else if (bindPropertyTypeName == "xelement")
{
- method = getXelement;
+ method = IDataReaderEntityBuilderHelpers.getXelement;
}
else if (dbTypeName == "CHAR" && DataRecord.GetDataTypeName(ordinal) == "CHAR(36)")
{
@@ -487,35 +432,35 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.DateTime:
CheckType(bind.DateThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "datetime")
- method = isNullableType ? getConvertDateTime : getDateTime;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDateTime : IDataReaderEntityBuilderHelpers.getDateTime;
if (bindPropertyTypeName == "datetime" && dbTypeName.Equals("time", StringComparison.CurrentCultureIgnoreCase))
- method = isNullableType ? getConvertTime : getTime;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertTime : IDataReaderEntityBuilderHelpers.getTime;
if (bindPropertyTypeName == "datetimeoffset")
- method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
break;
case CSharpDataType.@decimal:
CheckType(bind.DecimalThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "decimal")
- method = isNullableType ? getConvertDecimal : getDecimal;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDecimal : IDataReaderEntityBuilderHelpers.getDecimal;
break;
case CSharpDataType.@float:
case CSharpDataType.@double:
CheckType(bind.DoubleThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName.IsIn("double", "single") && dbTypeName != "real")
- method = isNullableType ? getConvertDouble : getDouble;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertDouble : IDataReaderEntityBuilderHelpers.getDouble;
else
- method = isNullableType ? getConvertFloat : getFloat;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertFloat : IDataReaderEntityBuilderHelpers.getFloat;
if (dbTypeName.Equals("float", StringComparison.CurrentCultureIgnoreCase) && isNullableType && bindPropertyTypeName.Equals("single", StringComparison.CurrentCultureIgnoreCase))
{
- method = getConvertDoubleToFloat;
+ method = IDataReaderEntityBuilderHelpers.getConvertDoubleToFloat;
}
if (bindPropertyType == UtilConstants.DecType)
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
if (bindPropertyType == UtilConstants.IntType)
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
if (bindPropertyTypeName == "string")
{
@@ -525,45 +470,45 @@ namespace ThingsGateway.SqlSugar
case CSharpDataType.Guid:
CheckType(bind.GuidThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "guid")
- method = isNullableType ? getConvertGuid : getGuid;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertGuid : IDataReaderEntityBuilderHelpers.getGuid;
break;
case CSharpDataType.@byte:
if (bindPropertyTypeName == "byte")
- method = isNullableType ? getConvertByte : getByte;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertByte : IDataReaderEntityBuilderHelpers.getByte;
break;
case CSharpDataType.@enum:
- method = isNullableType ? getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : getEnum.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertEnum_Null.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getEnum.MakeGenericMethod(bindPropertyType);
break;
case CSharpDataType.@short:
CheckType(bind.ShortThrow, bindPropertyTypeName, validPropertyName, propertyName);
if (bindPropertyTypeName == "int16" || bindPropertyTypeName == "short")
- method = isNullableType ? getConvertInt16 : getInt16;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt16 : IDataReaderEntityBuilderHelpers.getInt16;
break;
case CSharpDataType.@long:
if (bindPropertyTypeName == "int64" || bindPropertyTypeName == "long")
- method = isNullableType ? getConvertInt64 : getInt64;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertInt64 : IDataReaderEntityBuilderHelpers.getInt64;
break;
case CSharpDataType.DateTimeOffset:
- method = isNullableType ? getConvertdatetimeoffset : getdatetimeoffset;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffset : IDataReaderEntityBuilderHelpers.getdatetimeoffset;
if (bindPropertyTypeName == "datetime")
- method = isNullableType ? getConvertdatetimeoffsetDate : getdatetimeoffsetDate;
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getConvertdatetimeoffsetDate : IDataReaderEntityBuilderHelpers.getdatetimeoffsetDate;
break;
case CSharpDataType.Single:
break;
default:
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
break;
}
if (method == null && bindPropertyType == UtilConstants.StringType)
{
- method = getConvertString;
+ method = IDataReaderEntityBuilderHelpers.getConvertString;
}
if (bindPropertyType == UtilConstants.ObjType)
{
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
}
if (method == null)
- method = isNullableType ? getOtherNull.MakeGenericMethod(bindPropertyType) : getOther.MakeGenericMethod(bindPropertyType);
+ method = isNullableType ? IDataReaderEntityBuilderHelpers.getOtherNull.MakeGenericMethod(bindPropertyType) : IDataReaderEntityBuilderHelpers.getOther.MakeGenericMethod(bindPropertyType);
if (method.IsVirtual)
generator.Emit(OpCodes.Callvirt, method);
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilderHelpers.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilderHelpers.cs
new file mode 100644
index 000000000..4c98aff86
--- /dev/null
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbBindProvider/IDataReaderEntityBuilderHelpers.cs
@@ -0,0 +1,65 @@
+using System.Data;
+using System.Reflection;
+
+namespace ThingsGateway.SqlSugar
+{
+ internal static class IDataReaderEntityBuilderHelpers
+ {
+
+ ///
+ /// IsDBNull方法
+ ///
+ internal static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod(nameof(IDataRecord.IsDBNull), new Type[] { typeof(int) });
+ ///
+ /// GetBoolean方法
+ ///
+ internal static readonly MethodInfo getBoolean = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetBoolean), new Type[] { typeof(int) });
+ ///
+ /// GetByte方法
+ ///
+ internal static readonly MethodInfo getByte = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetByte), new Type[] { typeof(int) });
+ ///
+ /// GetDateTime方法
+ ///
+ internal static readonly MethodInfo getDateTime = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDateTime), new Type[] { typeof(int) });
+ internal static readonly MethodInfo getDecimal = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDecimal), new[] { typeof(int) });
+ internal static readonly MethodInfo getDouble = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetDouble), new[] { typeof(int) });
+ internal static readonly MethodInfo getFloat = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetFloat), new[] { typeof(int) });
+ internal static readonly MethodInfo getGuid = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetGuid), new[] { typeof(int) });
+ internal static readonly MethodInfo getInt16 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt16), new[] { typeof(int) });
+ internal static readonly MethodInfo getInt32 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt32), new[] { typeof(int) });
+ internal static readonly MethodInfo getInt64 = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetInt64), new[] { typeof(int) });
+ internal static readonly MethodInfo getString = typeof(IDataRecord).GetMethod(nameof(IDataRecord.GetString), new[] { typeof(int) });
+ internal static readonly MethodInfo getdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffset));
+ internal static readonly MethodInfo getdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetDateTimeOffsetDate));
+ internal static readonly MethodInfo getStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetStringGuid));
+ internal static readonly MethodInfo getXelement = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetXelement));
+ internal static readonly MethodInfo getConvertStringGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertStringGuid));
+ internal static readonly MethodInfo getEnum = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEnum));
+ internal static readonly MethodInfo getConvertString = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertString));
+ internal static readonly MethodInfo getConvertFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertFloat));
+ internal static readonly MethodInfo getConvertBoolean = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertBoolean));
+ internal static readonly MethodInfo getConvertByte = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertByte));
+ internal static readonly MethodInfo getConvertChar = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertChar));
+ internal static readonly MethodInfo getConvertDateTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDateTime));
+ internal static readonly MethodInfo getConvertTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertTime));
+ internal static readonly MethodInfo getTime = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetTime));
+ internal static readonly MethodInfo getConvertDecimal = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDecimal));
+ internal static readonly MethodInfo getConvertDouble = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDouble));
+ internal static readonly MethodInfo getConvertDoubleToFloat = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertDoubleToFloat));
+ internal static readonly MethodInfo getConvertGuid = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertGuid));
+ internal static readonly MethodInfo getConvertInt16 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt16));
+ internal static readonly MethodInfo getConvertInt32 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt32));
+ internal static readonly MethodInfo getConvertInt64 = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertInt64));
+ internal static readonly MethodInfo getConvertEnum_Null = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertEnum_Null));
+ internal static readonly MethodInfo getConvertdatetimeoffset = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffset));
+ internal static readonly MethodInfo getConvertdatetimeoffsetDate = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetConvertdatetimeoffsetDate));
+ internal static readonly MethodInfo getOtherNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOtherNull));
+ internal static readonly MethodInfo getOther = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetOther));
+ internal static readonly MethodInfo getJson = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetJson));
+ internal static readonly MethodInfo getArray = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetArray));
+ internal static readonly MethodInfo getEntity = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetEntity), new[] { typeof(SqlSugarProvider) });
+ internal static readonly MethodInfo getMyIntNull = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyIntNull));
+ internal static readonly MethodInfo getMyInt = typeof(IDataRecordExtensions).GetMethod(nameof(IDataRecordExtensions.GetMyInt));
+ }
+}
\ No newline at end of file
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbFirstTemplate.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbFirstTemplate.cs
index 2909b8177..0f4f02446 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbFirstTemplate.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbFirstTemplate.cs
@@ -11,7 +11,7 @@ namespace ThingsGateway.SqlSugar
///
/// 类模板
///
- public static string ClassTemplate = "{using}\r\n" +
+ public const string ClassTemplate = "{using}\r\n" +
"namespace {Namespace}\r\n" +
"{\r\n" +
"{ClassDescription}{SugarTable}\r\n" +
@@ -26,7 +26,7 @@ namespace ThingsGateway.SqlSugar
///
/// 类描述模板
///
- public static string ClassDescriptionTemplate =
+ public const string ClassDescriptionTemplate =
ClassSpace + "///\r\n" +
ClassSpace + "///{ClassDescription}" +
ClassSpace + "///";
@@ -34,13 +34,13 @@ namespace ThingsGateway.SqlSugar
///
/// 属性模板
///
- public static string PropertyTemplate = PropertySpace + "{SugarColumn}\r\n" +
+ public const string PropertyTemplate = PropertySpace + "{SugarColumn}\r\n" +
PropertySpace + "public {PropertyType} {PropertyName} {get;set;}\r\n";
///
/// 属性描述模板
///
- public static string PropertyDescriptionTemplate =
+ public const string PropertyDescriptionTemplate =
PropertySpace + "/// \r\n" +
PropertySpace + "/// Desc:{PropertyDescription}\r\n" +
PropertySpace + "/// Default:{DefaultValue}\r\n" +
@@ -50,12 +50,12 @@ namespace ThingsGateway.SqlSugar
///
/// 构造函数模板
///
- public static string ConstructorTemplate = PropertySpace + " this.{PropertyName} ={DefaultValue};\r\n";
+ public const string ConstructorTemplate = PropertySpace + " this.{PropertyName} ={DefaultValue};\r\n";
///
/// 命名空间模板
///
- public static string UsingTemplate = "using System;\r\n" +
+ public const string UsingTemplate = "using System;\r\n" +
"using System.Linq;\r\n" +
"using System.Text;" + "\r\n";
#endregion
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbRazor.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbRazor.cs
index 60bcab946..42ae0e261 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbRazor.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/DbFirstProvider/DbRazor.cs
@@ -19,7 +19,7 @@ namespace ThingsGateway.SqlSugar
///
/// 默认Razor类模板
///
- public static string DefaultRazorClassTemplate =
+ public const string DefaultRazorClassTemplate =
@"using System;
using System.Linq;
using System.Text;
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs
index e7f0a8089..e7539d8e1 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/Storageable.cs
@@ -8,7 +8,7 @@ namespace ThingsGateway.SqlSugar
SqlSugarProvider Context { get; set; }
internal ISqlBuilder Builder;
List Parameters;
- IEnumerable> allDatas;
+ StorageableInfo[] allDatas;
List dbDataList = new List();
List, bool>, string>> whereFuncs = new List, bool>, string>>();
Expression> whereExpression;
@@ -24,7 +24,7 @@ namespace ThingsGateway.SqlSugar
this.allDatas = datas.Select(it => new StorageableInfo()
{
Item = it
- });
+ }).ToArray();
}
Expression> queryableWhereExp;
@@ -209,7 +209,7 @@ namespace ThingsGateway.SqlSugar
{
return this.Saveable().ToStorage();
}
- if (!this.allDatas.Any())
+ if (this.allDatas.Length == 0)
return new StorageableResult()
{
AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false),
@@ -298,7 +298,7 @@ namespace ThingsGateway.SqlSugar
{
return this.Saveable().GetStorageableResult();
}
- if (!this.allDatas.Any())
+ if (this.allDatas.Length == 0)
return new StorageableResult()
{
//AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false),
@@ -380,7 +380,7 @@ namespace ThingsGateway.SqlSugar
{
return await Saveable().ToStorageAsync().ConfigureAwait(false);
}
- if (!this.allDatas.Any())
+ if (this.allDatas.Length == 0)
return new StorageableResult()
{
AsDeleteable = this.Context.Deleteable().AS(asname).Where(it => false),
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableMethodInfo.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableMethodInfo.cs
index bef834ce8..8ae7a033f 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableMethodInfo.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SaveableProvider/StorageableMethodInfo.cs
@@ -6,7 +6,7 @@ namespace ThingsGateway.SqlSugar
{
internal SqlSugarProvider Context { get; set; }
internal MethodInfo MethodInfo { get; set; }
- internal object objectValue { get; set; }
+ internal object ObjValue { get; set; }
public int ExecuteCommand()
{
if (Context == null) return 0;
@@ -20,16 +20,14 @@ namespace ThingsGateway.SqlSugar
{
get
{
- var type = "AsInsertable";
- return GetAs(type);
+ return GetAs(nameof(AsInsertable));
}
}
public StorageableAsMethodInfo AsUpdateable
{
get
{
- var type = "AsUpdateable";
- return GetAs(type);
+ return GetAs(nameof(AsUpdateable));
}
}
@@ -48,9 +46,9 @@ namespace ThingsGateway.SqlSugar
private MethodInfo GetSaveMethod(ref object callValue)
{
- if (objectValue == null)
+ if (ObjValue == null)
return null;
- callValue = MethodInfo.Invoke(Context, new object[] { objectValue });
+ callValue = MethodInfo.Invoke(Context, new object[] { ObjValue });
return callValue.GetType().GetMyMethod(nameof(ExecuteCommand), 0);
}
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs
index 5ea7d9b20..e2e6162ef 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Abstract/SugarProvider/SqlSugarProvider.cs
@@ -1113,7 +1113,7 @@ namespace ThingsGateway.SqlSugar
{
Context = this.Context,
MethodInfo = method,
- objectValue = newList
+ ObjValue = newList
};
return result;
}
@@ -1126,7 +1126,7 @@ namespace ThingsGateway.SqlSugar
{
Context = this.Context,
MethodInfo = method,
- objectValue = singleEntityObjectOrList
+ ObjValue = singleEntityObjectOrList
};
return result;
}
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs
index cd4f7ca67..d7038ab0b 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/DistributedSystem/Snowflake/SnowFlakeSingle.cs
@@ -2,7 +2,7 @@
{
public sealed class SnowFlakeSingle
{
- private static object LockObject = new object();
+ private static readonly object LockObject = new object();
private static DistributedSystem.Snowflake.IdWorker worker;
public static int WorkId = 1;
public static int DatacenterId = 1;
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs
index e7feab742..92f4da18b 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/IntegrationServices/CacheService.cs
@@ -99,10 +99,7 @@ namespace ThingsGateway.SqlSugar
public void RemoveAllCache()
{
- foreach (var key in GetAllKey())
- {
- this.Remove(key);
- }
+ this.InstanceCache.Clear();
}
public IEnumerable GetAllKey()
diff --git a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs
index d9620f86c..06f7a2aee 100644
--- a/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs
+++ b/src/Admin/ThingsGateway.SqlSugar/Sugar/Realization/Sqlite/SqlBuilder/SqliteFastBuilder.cs
@@ -28,11 +28,12 @@ namespace ThingsGateway.SqlSugar
this.Context.Close();
}
}
- Task CreateTempAsync(Dictionary)> list) where T : class, new()
+ public Task CreateTempAsync(Dictionary)> list) where T : class, new()
{
IsUpdate = true;
return Task.FromResult(string.Empty);
}
+
public Task CreateTempAsync(DataTable dt) where T : class, new()
{
@@ -175,7 +176,7 @@ namespace ThingsGateway.SqlSugar
else
{
var count = list.FirstOrDefault().Value.Item2?.Count;
- if(count==1)
+ if (count == 1)
{
var row = list.GetRows(0).ToDictionary(a => a.ColumnName, a => a.Value);
cmd.CommandText = this.Context.InsertableT(row).AS(tableName).ToSqlString().Replace(";SELECT LAST_INSERT_ROWID();", "");
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 70cbf2d8f..34f3b8200 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,9 +1,9 @@
- 10.11.93
- 10.11.93
- 10.11.93
+ 10.11.94
+ 10.11.94
+ 10.11.94
10.11.6
10.11.6
8.0.20
@@ -12,7 +12,7 @@
false
10.11.87
10.11.87
- 4.0.0-beta.96
+ 4.0.0-beta.100
diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ManagementTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ManagementTask.cs
index 1be847df2..7bc770a38 100644
--- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ManagementTask.cs
+++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Management/ManagementTask.cs
@@ -113,7 +113,7 @@ public partial class ManagementTask : AsyncDisposableObject
.ConfigurePlugins(a =>
{
a.UseTcpSessionCheckClear();
- a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b =>
+ a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{
b.UseSystemTextJson(json =>
{
@@ -123,7 +123,7 @@ public partial class ManagementTask : AsyncDisposableObject
json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter());
});
- });
+ }));
a.UseDmtpFileTransfer();//必须添加文件传输插件
@@ -176,7 +176,7 @@ public partial class ManagementTask : AsyncDisposableObject
.ConfigurePlugins(a =>
{
a.UseTcpSessionCheckClear();
- a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b =>
+ a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{
b.UseSystemTextJson(json =>
{
@@ -186,7 +186,7 @@ public partial class ManagementTask : AsyncDisposableObject
json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter());
});
- });
+ }));
a.UseDmtpFileTransfer();//必须添加文件传输插件
diff --git a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Redundant/RedundancyTask.cs b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Redundant/RedundancyTask.cs
index cbd6be89f..b36cc91a3 100644
--- a/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Redundant/RedundancyTask.cs
+++ b/src/Gateway/ThingsGateway.Gateway.Application/Services/Management/Redundant/RedundancyTask.cs
@@ -346,7 +346,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
{
a.UseTcpSessionCheckClear();
- a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b =>
+ a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{
b.UseSystemTextJson(json =>
{
@@ -356,7 +356,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter());
});
- });
+ }));
a.UseDmtpHeartbeat()//使用Dmtp心跳
.SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval))
.SetMaxFailCount(redundancy.MaxErrorCount);
@@ -390,7 +390,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
.ConfigurePlugins(a =>
{
a.UseTcpSessionCheckClear();
- a.UseDmtpRpc().ConfigureDefaultSerializationSelector(b =>
+ a.UseDmtpRpc(a => a.ConfigureDefaultSerializationSelector(b =>
{
b.UseSystemTextJson(json =>
{
@@ -400,7 +400,7 @@ internal sealed class RedundancyTask : IRpcDriver, IAsyncDisposable
json.Converters.Add(new JObjectSystemTextJsonConverter());
json.Converters.Add(new JArraySystemTextJsonConverter());
});
- });
+ }));
a.UseDmtpHeartbeat()//使用Dmtp心跳
.SetTick(TimeSpan.FromMilliseconds(redundancy.HeartbeatInterval))
.SetMaxFailCount(redundancy.MaxErrorCount);
diff --git a/src/Plugin/ThingsGateway.Plugin.Kafka/ThingsGateway.Plugin.KafkaPro.csproj b/src/Plugin/ThingsGateway.Plugin.Kafka/ThingsGateway.Plugin.KafkaPro.csproj
index 7eaa8171a..b4e78c2eb 100644
--- a/src/Plugin/ThingsGateway.Plugin.Kafka/ThingsGateway.Plugin.KafkaPro.csproj
+++ b/src/Plugin/ThingsGateway.Plugin.Kafka/ThingsGateway.Plugin.KafkaPro.csproj
@@ -17,13 +17,13 @@
ThingsGateway.Plugin.Kafka
$(MSBuildProjectName)
-
+
-
+
contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;
-
-
+
+
contentFiles;compile;build;buildMultitargeting;buildTransitive;analyzers;
@@ -34,6 +34,6 @@
Never
-
+