diff --git a/src/extensions/BootstrapBlazor.Socket/BootstrapBlazor.Socket.csproj b/src/extensions/BootstrapBlazor.Socket/BootstrapBlazor.Socket.csproj index 43da4f59..2b4cf7f9 100644 --- a/src/extensions/BootstrapBlazor.Socket/BootstrapBlazor.Socket.csproj +++ b/src/extensions/BootstrapBlazor.Socket/BootstrapBlazor.Socket.csproj @@ -1,7 +1,7 @@  - 9.0.8 + 9.0.10 diff --git a/src/extensions/BootstrapBlazor.Socket/DataConverter/DataConverter.cs b/src/extensions/BootstrapBlazor.Socket/DataConverter/DataConverter.cs index 9e55b514..44425a29 100644 --- a/src/extensions/BootstrapBlazor.Socket/DataConverter/DataConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/DataConverter/DataConverter.cs @@ -41,9 +41,8 @@ public virtual bool TryConvertTo(ReadOnlyMemory data, [NotNullWhen(true)] } catch (Exception ex) { - SocketLogging.LogError(ex, "DataConverter TryConvertTo failed"); + SocketLogging.LogError(ex, $"DataConverter {nameof(TryConvertTo)} failed"); } - return ret; } @@ -64,8 +63,6 @@ protected virtual bool Parse(ReadOnlyMemory data, TEntity entity) var ret = false; if (entity != null) { - var unuseProperties = new List(32); - // 通过 SocketDataPropertyConverterAttribute 特性获取属性转换器 var properties = entity.GetType().GetProperties().Where(p => p.CanWrite).ToList(); foreach (var p in properties) @@ -81,10 +78,8 @@ protected virtual bool Parse(ReadOnlyMemory data, TEntity entity) } } } - ret = true; } - return ret; } @@ -95,7 +90,6 @@ protected virtual bool Parse(ReadOnlyMemory data, TEntity entity) { attr = v; } - return attr; } } diff --git a/src/extensions/BootstrapBlazor.Socket/Extensions/DataPropertyExtensions.cs b/src/extensions/BootstrapBlazor.Socket/Extensions/DataPropertyExtensions.cs index ad151917..8f117a73 100644 --- a/src/extensions/BootstrapBlazor.Socket/Extensions/DataPropertyExtensions.cs +++ b/src/extensions/BootstrapBlazor.Socket/Extensions/DataPropertyExtensions.cs @@ -29,7 +29,11 @@ static class DataPropertyExtensions var type = attribute.Type; if (type != null) { - if (type == typeof(byte[])) + if (type == typeof(byte)) + { + converter = new DataByteConverter(); + } + else if (type == typeof(byte[])) { converter = new DataByteArrayConverter(); } diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataBoolConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataBoolConverter.cs index f87e9a84..c2593e28 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataBoolConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataBoolConverter.cs @@ -5,7 +5,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 bool 数据转换器 +/// Socket 数据转换为 bool 数据转换器 /// public class DataBoolConverter : IDataPropertyConverter { @@ -16,7 +16,7 @@ public class DataBoolConverter : IDataPropertyConverter public object? Convert(ReadOnlyMemory data) { var ret = false; - if (data.Length == 1) + if (data.Length > 0) { ret = data.Span[0] != 0x00; } diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteArrayConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteArrayConverter.cs index 66eed9b3..f3b0c18e 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteArrayConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteArrayConverter.cs @@ -5,7 +5,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 byte[] 数组转换器 +/// Socket 数据转换为 byte[] 数组转换器 /// public class DataByteArrayConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteConverter.cs new file mode 100644 index 00000000..afd1ad2b --- /dev/null +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataByteConverter.cs @@ -0,0 +1,20 @@ +// Copyright (c) BootstrapBlazor & Argo Zhang (argo@live.ca). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +namespace BootstrapBlazor.Socket.DataConverters; + +/// +/// Socket 数据转换为 byte 转换器 +/// +public class DataByteConverter : IDataPropertyConverter +{ + /// + /// + /// + /// + public object? Convert(ReadOnlyMemory data) + { + return data.Length > 0 ? data.Span[0] : 0x0; + } +} diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleBigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleBigEndianConverter.cs index 8f31aad0..daed3af2 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleBigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleBigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 double 数据大端转换器 +/// Socket 数据转换为 double 数据大端转换器 /// public class DataDoubleBigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleLittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleLittleEndianConverter.cs index 8ae7949a..63d25727 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleLittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataDoubleLittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 double 数据小端转换器 +/// Socket 数据转换为 double 数据小端转换器 /// public class DataDoubleLittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataEnumConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataEnumConverter.cs index e15eff11..f636e19f 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataEnumConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataEnumConverter.cs @@ -5,7 +5,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 Enum 数据转换器 +/// Socket 数据转换为 Enum 数据转换器 /// public class DataEnumConverter(Type? type) : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16BigEndianConverter.cs index b5aa8868..bbc76ef4 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 short 数据大端转换器 +/// Socket 数据转换为 short 数据大端转换器 /// public class DataInt16BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16LittleEndianConverter.cs index c8219846..3452ed51 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt16LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 short 数据小端转换器 +/// Socket 数据转换为 short 数据小端转换器 /// public class DataInt16LittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32BigEndianConverter.cs index 461d3d04..445b6f59 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 int 数据大端转换器 +/// Socket 数据转换为 int 数据大端转换器 /// public class DataInt32BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32LittleEndianConverter.cs index 0266226d..f2744e07 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt32LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 int 数据小端转换器 +/// Socket 数据转换为 int 数据小端转换器 /// public class DataInt32LittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64BigEndianConverter.cs index 2e33954d..b82d5044 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 long 数据大端转换器 +/// Socket 数据转换为 long 数据大端转换器 /// public class DataInt64BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64LittleEndianConverter.cs index ef89ca7a..d78a104c 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataInt64LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 long 数据小端转换器 +/// Socket 数据转换为 long 数据小端转换器 /// public class DataInt64LittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleBigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleBigEndianConverter.cs index 94c29fe5..a047a201 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleBigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleBigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 float 数据大端转换器 +/// Socket 数据转换为 float 数据大端转换器 /// public class DataSingleBigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleLittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleLittleEndianConverter.cs index 481d64ef..c3387816 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleLittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataSingleLittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 float 数据小端转换器 +/// Socket 数据转换为 float 数据小端转换器 /// public class DataSingleLittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataStringConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataStringConverter.cs index 354a8203..6515f823 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataStringConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataStringConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 string 数据转换器 +/// Socket 数据转换为 string 数据转换器 /// public class DataStringConverter(string? encodingName) : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16BigEndianConverter.cs index c2ce855d..ec8b82be 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 ushort 数据大端转换器 +/// Socket 数据转换为 ushort 数据大端转换器 /// public class DataUInt16BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16LittleEndianConverter.cs index b677a0ce..dae01236 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt16LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 ushort 数据小端转换器 +/// Socket 数据转换为 ushort 数据小端转换器 /// public class DataUInt16LittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32BigEndianConverter.cs index 6d1ceca1..d3b1f0a1 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 uint 数据大端转换器 +/// Socket 数据转换为 uint 数据大端转换器 /// public class DataUInt32BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32LittleEndianConverter.cs index 2e8f3ad7..482f8a8d 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt32LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 uint 数据小端转换器 +/// Socket 数据转换为 uint 数据小端转换器 /// public class DataUInt32LittleEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64BigEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64BigEndianConverter.cs index f2ab6383..737812a8 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64BigEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64BigEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 ulong 数据大端转换器 +/// Socket 数据转换为 ulong 数据大端转换器 /// public class DataUInt64BigEndianConverter : IDataPropertyConverter { diff --git a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64LittleEndianConverter.cs b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64LittleEndianConverter.cs index 4b354d29..51255bdc 100644 --- a/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64LittleEndianConverter.cs +++ b/src/extensions/BootstrapBlazor.Socket/PropertyConverter/DataUInt64LittleEndianConverter.cs @@ -7,7 +7,7 @@ namespace BootstrapBlazor.Socket.DataConverters; /// -/// Sokcet 数据转换为 ulong 数据小端转换器 +/// Socket 数据转换为 ulong 数据小端转换器 /// public class DataUInt64LittleEndianConverter : IDataPropertyConverter { diff --git a/test/UnitTestTcpSocket/TcpSocketFactoryTest.cs b/test/UnitTestTcpSocket/TcpSocketFactoryTest.cs index 25ba6a91..4ab1a4c2 100644 --- a/test/UnitTestTcpSocket/TcpSocketFactoryTest.cs +++ b/test/UnitTestTcpSocket/TcpSocketFactoryTest.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ -using BootstrapBlazor.Socket.Logging; using Microsoft.Extensions.Logging; using System.Buffers; using System.Net;