|
8 | 8 | Introduction="@Localizer["NormalIntro"]" |
9 | 9 | Name="Normal" ShowCode="false"> |
10 | 10 | <p> |
11 | | - 通过 <code>SocketDataTypeConverterAttribute</code> 类标签与 <code>SocketDataPropertyConverterAttribute</code> |
| 11 | + 通过 <code>DataTypeConverterAttribute</code> 类标签与 <code>DataPropertyConverterAttribute</code> |
12 | 12 | 属性标签可以将通讯数据自动转化为我们系统中需要的业务实体类,示例如下:</p> |
13 | | - <Pre>[SocketDataTypeConverter(Type = typeof(SocketDataConverter<MockEntity>))] |
| 13 | + <Pre>[DataTypeConverter(Type = typeof(DataConverter<MockEntity>))] |
14 | 14 | class MockEntity |
15 | 15 | { |
16 | | - [SocketDataPropertyConverter(Type = typeof(byte[]), Offset = 0, Length = 5)] |
| 16 | + [DataPropertyConverter(Type = typeof(byte[]), Offset = 0, Length = 5)] |
17 | 17 | public byte[]? Header { get; set; } |
18 | 18 |
|
19 | | - [SocketDataPropertyConverter(Type = typeof(byte[]), Offset = 5, Length = 2)] |
| 19 | + [DataPropertyConverter(Type = typeof(byte[]), Offset = 5, Length = 2)] |
20 | 20 | public byte[]? Body { get; set; } |
21 | 21 |
|
22 | | - [SocketDataPropertyConverter(Type = typeof(string), Offset = 7, Length = 1, EncodingName = "utf-8")] |
| 22 | + [DataPropertyConverter(Type = typeof(string), Offset = 7, Length = 1, EncodingName = "utf-8")] |
23 | 23 | public string? Value1 { get; set; } |
24 | 24 |
|
25 | | - [SocketDataPropertyConverter(Type = typeof(int), Offset = 8, Length = 1)] |
| 25 | + [DataPropertyConverter(Type = typeof(int), Offset = 8, Length = 1)] |
26 | 26 | public int Value2 { get; set; } |
27 | 27 | }</Pre> |
28 | | - <p class="code-label">1. <code>SocketDataTypeConverter</code> 参数说明:</p> |
| 28 | + <p class="code-label">1. <code>DataTypeConverter</code> 参数说明:</p> |
29 | 29 | <ul class="ul-demo"> |
30 | | - <li><b>Type</b>: 自定义转换器类型,组件库内置了 <code>SocketDataConverter</code> 泛型类,建议看一下源码非常方便扩展出自己的转换器 |
| 30 | + <li><b>Type</b>: 自定义转换器类型,组件库内置了 <code>DataConverter</code> 泛型类,建议看一下源码非常方便扩展出自己的转换器 |
31 | 31 | </li> |
32 | 32 | </ul> |
33 | | - <p class="code-label">2. <code>SocketDataPropertyConverterAttribute</code> 参数说明</p> |
| 33 | + <p class="code-label">2. <code>DataPropertyConverterAttribute</code> 参数说明</p> |
34 | 34 | <ul class="ul-demo"> |
35 | 35 | <li><b>Type</b>: 转换目标数据类型</li> |
36 | 36 | <li><b>Offset</b>: 数据偏移量,即在接收到的数据中起始位置</li> |
37 | 37 | <li><b>Length</b>: 数据长度,即在接收到的数据中占的长度</li> |
38 | 38 | <li><b>EncodingName</b>: 转成字符串时需要的编码名称,默认 null 使用 <code>utf-8</code> 编码</li> |
39 | | - <li><b>ConverterType</b>: 自定义转化器类型,继承 <code>ISocketDataPropertyConverter</code> 接口</li> |
| 39 | + <li><b>ConverterType</b>: 自定义转化器类型,继承 <code>IDataPropertyConverter</code> 接口</li> |
40 | 40 | <li><b>ConverterParameters</b>: 自定义转化器类型构造函数所需的参数,默认 null</li> |
41 | 41 | </ul> |
42 | 42 | <p>组件库内置了大量数据类型转换器</p> |
43 | 43 | <ul class="ul-demo"> |
44 | | - <li><code>SocketDataByteArrayConverter</code> 转成 byte[] 数组类型</li> |
45 | | - <li><code>SocketDataStringConverter</code> 转成 string 字符串类型</li> |
46 | | - <li><code>SocketDataEnumConverter</code> 转成 enum 枚举类型</li> |
47 | | - <li><code>SocketDataBoolConverter</code> 转成 bool 布尔类型</li> |
48 | | - <li><code>SocketDataInt16BigEndianConverter</code> 转成 short 整形大端读取</li> |
49 | | - <li><code>SocketDataInt32BigEndianConverter</code> 转成 int 整形大端读取</li> |
50 | | - <li><code>SocketDataInt64BigEndianConverter</code> 转成 long 长整形大端读取</li> |
51 | | - <li><code>SocketDataSingleBigEndianConverter</code> 转成 float 单精度浮点数大端读取</li> |
52 | | - <li><code>SocketDataDoubleBigEndianConverter</code> 转成 double 双精度浮点数大端读取</li> |
53 | | - <li><code>SocketDataUInt16BigEndianConverter</code> 转成 ushort 无符号整形大端读取</li> |
54 | | - <li><code>SocketDataUInt32BigEndianConverter</code> 转成 uint 无符号整形大端读取</li> |
55 | | - <li><code>SocketDataUInt64BigEndianConverter</code> 转成 ulong 无符号长整形大端读取</li> |
56 | | - <li><code>SocketDataInt16LittleEndianConverter</code> 转成 short 整形小端读取</li> |
57 | | - <li><code>SocketDataInt32LittleEndianConverter</code> 转成 int 整形小端读取</li> |
58 | | - <li><code>SocketDataInt64LittleEndianConverter</code> 转成 long 长整形小端读取</li> |
59 | | - <li><code>SocketDataSingleLittleEndianConverter</code> 转成 float 单精度浮点数小端读取</li> |
60 | | - <li><code>SocketDataDoubleLittleEndianConverter</code> 转成 double 双精度浮点数小端读取</li> |
61 | | - <li><code>SocketDataUInt16LittleEndianConverter</code> 转成 ushort 无符号整形小端读取</li> |
62 | | - <li><code>SocketDataUInt32LittleEndianConverter</code> 转成 uint 无符号整形小端读取</li> |
63 | | - <li><code>SocketDataUInt64LittleEndianConverter</code> 转成 ulong 无符号整形小端读取</li> |
| 44 | + <li><code>DataByteArrayConverter</code> 转成 byte[] 数组类型</li> |
| 45 | + <li><code>DataStringConverter</code> 转成 string 字符串类型</li> |
| 46 | + <li><code>DataEnumConverter</code> 转成 enum 枚举类型</li> |
| 47 | + <li><code>DataBoolConverter</code> 转成 bool 布尔类型</li> |
| 48 | + <li><code>DataInt16BigEndianConverter</code> 转成 short 整形大端读取</li> |
| 49 | + <li><code>DataInt32BigEndianConverter</code> 转成 int 整形大端读取</li> |
| 50 | + <li><code>DataInt64BigEndianConverter</code> 转成 long 长整形大端读取</li> |
| 51 | + <li><code>DataSingleBigEndianConverter</code> 转成 float 单精度浮点数大端读取</li> |
| 52 | + <li><code>DataDoubleBigEndianConverter</code> 转成 double 双精度浮点数大端读取</li> |
| 53 | + <li><code>DataUInt16BigEndianConverter</code> 转成 ushort 无符号整形大端读取</li> |
| 54 | + <li><code>DataUInt32BigEndianConverter</code> 转成 uint 无符号整形大端读取</li> |
| 55 | + <li><code>DataUInt64BigEndianConverter</code> 转成 ulong 无符号长整形大端读取</li> |
| 56 | + <li><code>DataInt16LittleEndianConverter</code> 转成 short 整形小端读取</li> |
| 57 | + <li><code>DataInt32LittleEndianConverter</code> 转成 int 整形小端读取</li> |
| 58 | + <li><code>DataInt64LittleEndianConverter</code> 转成 long 长整形小端读取</li> |
| 59 | + <li><code>DataSingleLittleEndianConverter</code> 转成 float 单精度浮点数小端读取</li> |
| 60 | + <li><code>DataDoubleLittleEndianConverter</code> 转成 double 双精度浮点数小端读取</li> |
| 61 | + <li><code>DataUInt16LittleEndianConverter</code> 转成 ushort 无符号整形小端读取</li> |
| 62 | + <li><code>DataUInt32LittleEndianConverter</code> 转成 uint 无符号整形小端读取</li> |
| 63 | + <li><code>DataUInt64LittleEndianConverter</code> 转成 ulong 无符号整形小端读取</li> |
64 | 64 | </ul> |
65 | 65 | <p>自定义数据类型转化器示例</p> |
66 | | - <Pre>[SocketTypeDataConverter(Type = typeof(SocketDataConverter<MockEntity>))] |
| 66 | + <Pre>[SocketTypeDataConverter(Type = typeof(DataConverter<MockEntity>))] |
67 | 67 | class MockEntity |
68 | 68 | { |
69 | | - [SocketDataPropertyConverter(Type = typeof(byte[]), Offset = 0, Length = 5)] |
| 69 | + [DataPropertyConverter(Type = typeof(byte[]), Offset = 0, Length = 5)] |
70 | 70 | public byte[]? Header { get; set; } |
71 | 71 |
|
72 | | - [SocketDataPropertyConverter(Type = typeof(byte[]), Offset = 5, Length = 2)] |
| 72 | + [DataPropertyConverter(Type = typeof(byte[]), Offset = 5, Length = 2)] |
73 | 73 | public byte[]? Body { get; set; } |
74 | 74 |
|
75 | | - [SocketDataPropertyConverter(Type = typeof(Foo), Offset = 7, Length = 1, ConverterType = typeof(FooConverter), ConverterParameters = ["test"])] |
| 75 | + [DataPropertyConverter(Type = typeof(Foo), Offset = 7, Length = 1, ConverterType = typeof(FooConverter), ConverterParameters = ["test"])] |
76 | 76 | public string? Value1 { get; set; } |
77 | 77 | }</Pre> |
78 | | - <Pre>class FooConverter(string name) : ISocketDataPropertyConverter |
| 78 | + <Pre>class FooConverter(string name) : IDataPropertyConverter |
79 | 79 | { |
80 | 80 | public object? Convert(ReadOnlyMemory<byte> data) |
81 | 81 | { |
|
0 commit comments