mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-20 10:50:48 +08:00
更新依赖库
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<PluginVersion>10.9.37</PluginVersion>
|
||||
<ProPluginVersion>10.9.37</ProPluginVersion>
|
||||
<DefaultVersion>10.9.37</DefaultVersion>
|
||||
<PluginVersion>10.9.38</PluginVersion>
|
||||
<ProPluginVersion>10.9.38</ProPluginVersion>
|
||||
<DefaultVersion>10.9.38</DefaultVersion>
|
||||
<AuthenticationVersion>2.9.18</AuthenticationVersion>
|
||||
<SourceGeneratorVersion>10.9.18</SourceGeneratorVersion>
|
||||
<NET8Version>8.0.18</NET8Version>
|
||||
|
@@ -10,8 +10,8 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="$(NET9Version)" />
|
||||
<PackageReference Include="TouchSocket" Version="3.1.12" />
|
||||
<PackageReference Include="TouchSocket.SerialPorts" Version="3.1.12" />
|
||||
<PackageReference Include="TouchSocket" Version="3.1.13" />
|
||||
<PackageReference Include="TouchSocket.SerialPorts" Version="3.1.13" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -12,6 +12,7 @@ using System.Reflection;
|
||||
|
||||
using ThingsGateway.Common.Extension.Generic;
|
||||
using ThingsGateway.NewLife.Extension;
|
||||
using ThingsGateway.NewLife.Json.Extension;
|
||||
using ThingsGateway.NewLife.Reflection;
|
||||
|
||||
namespace ThingsGateway.Gateway.Application;
|
||||
@@ -92,7 +93,7 @@ public static class DynamicModelExtension
|
||||
// 获取动态对象集合的类型
|
||||
var type = value.GetType().GetGenericArguments().FirstOrDefault() ?? throw new ArgumentNullException(nameof(value));
|
||||
|
||||
var namesStr = Newtonsoft.Json.JsonConvert.SerializeObject(names);
|
||||
var namesStr = names.ToSystemTextJsonString(false);
|
||||
// 构建缓存键,包括属性名和类型信息
|
||||
var cacheKey = $"{nameof(GetProperties)}-{namesStr}-{type.FullName}-{type.TypeHandle.Value}";
|
||||
|
||||
@@ -100,18 +101,19 @@ public static class DynamicModelExtension
|
||||
var result = App.CacheService.GetOrAdd(cacheKey, a =>
|
||||
{
|
||||
// 获取动态对象类型中指定名称的属性信息
|
||||
var properties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty)
|
||||
.Where(pi => names.Contains(pi.Name)) // 筛选出指定属性名的属性信息
|
||||
.Where(pi => pi != null) // 过滤空属性信息
|
||||
.AsEnumerable();
|
||||
var allProperties = type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty)
|
||||
.ToDictionary(pi => pi.Name, pi => pi);
|
||||
|
||||
// 检查是否找到了所有指定名称的属性,如果没有找到,则抛出异常
|
||||
if (names.Length != properties.Count())
|
||||
var properties = names.Select(name =>
|
||||
{
|
||||
throw new InvalidOperationException($"Couldn't find properties on type:{type.Name},{Environment.NewLine}names:{namesStr}");
|
||||
}
|
||||
if (!allProperties.TryGetValue(name, out var pi))
|
||||
throw new InvalidOperationException($"Couldn't find property '{name}' on type: {type.Name}");
|
||||
|
||||
return properties.ToArray(); // 返回属性信息集合
|
||||
return pi;
|
||||
}).ToArray();
|
||||
|
||||
return properties; // 返回属性信息集合
|
||||
}, 3600); // 缓存有效期为3600秒
|
||||
|
||||
return result; // 返回属性信息集合
|
||||
|
@@ -10,8 +10,8 @@
|
||||
<PackageReference Include="Riok.Mapperly" Version="4.2.1" ExcludeAssets="runtime" PrivateAssets="all" />
|
||||
<PackageReference Include="Rougamo.Fody" Version="5.0.1" />
|
||||
<PackageReference Include="System.Linq.Async" Version="6.0.3" />
|
||||
<PackageReference Include="TouchSocket.Dmtp" Version="3.1.12" />
|
||||
<PackageReference Include="TouchSocket.WebApi.Swagger" Version="3.1.12" />
|
||||
<PackageReference Include="TouchSocket.Dmtp" Version="3.1.13" />
|
||||
<PackageReference Include="TouchSocket.WebApi.Swagger" Version="3.1.13" />
|
||||
<PackageReference Include="ThingsGateway.Authentication" Version="$(AuthenticationVersion)" />
|
||||
<!--<ProjectReference Include="..\..\PluginPro\ThingsGateway.Authentication\ThingsGateway.Authentication.csproj" />-->
|
||||
|
||||
|
@@ -51,7 +51,7 @@ public class SiemensS7Test
|
||||
});
|
||||
var task2 = Task.Run(async () =>
|
||||
{
|
||||
await Task.Delay(100).ConfigureAwait(false);
|
||||
await Task.Delay(1000).ConfigureAwait(false);
|
||||
bytes[12] = (byte)(((IClientChannel)(siemensS7Master.Channel)).WaitHandlePool.GetValue("m_currentSign").ToInt() - 1);
|
||||
foreach (var item in bytes)
|
||||
{
|
||||
|
@@ -12,7 +12,7 @@
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.1">
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket.Dmtp" Version="3.1.12" />
|
||||
<PackageReference Include="TouchSocket.Dmtp" Version="3.1.13" />
|
||||
<PackageReference Include="Riok.Mapperly" Version="4.2.1" ExcludeAssets="runtime" PrivateAssets="all" />
|
||||
</ItemGroup>
|
||||
|
||||
|
Reference in New Issue
Block a user