Skip to content

Commit f8798cb

Browse files
committed
0.7.0.4
1 parent 71dccfa commit f8798cb

7 files changed

Lines changed: 40 additions & 12 deletions

File tree

src/SystemCommonLibrary.AspNetCore/SystemCommonLibrary.AspNetCore.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
<PropertyGroup>
44
<TargetFramework>net7.0</TargetFramework>
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
6-
<Version>0.7.0.3</Version>
6+
<Version>0.7.0.4</Version>
77
<Copyright>clawit.com</Copyright>
88
<PackageLicenseUrl></PackageLicenseUrl>
99
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
10-
<AssemblyVersion>0.7.0.3</AssemblyVersion>
11-
<FileVersion>0.7.0.3</FileVersion>
10+
<AssemblyVersion>0.7.0.4</AssemblyVersion>
11+
<FileVersion>0.7.0.4</FileVersion>
1212
<Authors>clawit.com</Authors>
1313
<Company>clawit.com</Company>
1414
</PropertyGroup>

src/SystemCommonLibrary.Data/SystemCommonLibrary.Data.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
66
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
77
<Copyright>clawit.com</Copyright>
8-
<Version>0.7.0.3</Version>
9-
<AssemblyVersion>0.7.0.3</AssemblyVersion>
8+
<Version>0.7.0.4</Version>
9+
<AssemblyVersion>0.7.0.4</AssemblyVersion>
1010
<Authors>clawit.com</Authors>
1111
<Company>clawit.com</Company>
12-
<FileVersion>0.7.0.3</FileVersion>
12+
<FileVersion>0.7.0.4</FileVersion>
1313
</PropertyGroup>
1414

1515
<ItemGroup>

src/SystemCommonLibrary/Reflect/TypeExtension.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,16 @@ public static bool IsRuntimeType(this Type type)
1313
{
1414
return type.FullName == "System.RuntimeType";
1515
}
16+
17+
public static bool IsStruct(this Type type)
18+
{
19+
return type.IsValueType &&
20+
!type.IsEnum &&
21+
!type.IsPrimitive &&
22+
type != typeof(decimal) &&
23+
type != typeof(DateTime) &&
24+
type != typeof(TimeSpan) &&
25+
type != typeof(Guid);
26+
}
1627
}
1728
}

src/SystemCommonLibrary/Reflect/TypeInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public static SlimTypeInfo GetOrAddInstance(Type type, string methodName = "Add"
3434
{
3535
throw new Exception("服务方法中不能包含接口内容!");
3636
}
37-
else if (type.IsClass)
37+
else if (type.IsClass || type.IsStruct())
3838
{
3939
var fullName = type.FullName + methodName;
4040

src/SystemCommonLibrary/Serialization/BitSerializer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ public static byte[] Serialize(object param)
354354
else
355355
{
356356
var type = param.GetType();
357-
if (type.IsClass)
357+
if (type.IsClass || type.IsStruct())
358358
{
359359
if (type.IsGenericType || type.IsArray)
360360
{
@@ -514,7 +514,7 @@ public static object Deserialize(Type type, byte[] datas, ref int offset)
514514
throw new NotImplementedException("未定义的类型:" + type.ToString());
515515
}
516516
}
517-
else if (type.IsClass)
517+
else if (type.IsClass || type.IsStruct())
518518
{
519519
obj = DeserializeInstanceWithFields(type, data);
520520
}

src/SystemCommonLibrary/SystemCommonLibrary.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
<TargetFramework>net7.0</TargetFramework>
55

66
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
7-
<Version>0.7.0.3</Version>
8-
<AssemblyVersion>0.7.0.3</AssemblyVersion>
9-
<FileVersion>0.7.0.3</FileVersion>
7+
<Version>0.7.0.4</Version>
8+
<AssemblyVersion>0.7.0.4</AssemblyVersion>
9+
<FileVersion>0.7.0.4</FileVersion>
1010
<Copyright>clawit.com</Copyright>
1111
<PackageLicenseUrl></PackageLicenseUrl>
1212
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>

src/UnitTest/BitSerializerTest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ public class ClassInherit : ClassBase {
7777
public int Dim1 { get; set; }
7878
}
7979

80+
public class ClassSize
81+
{
82+
public Size Dim1 { get; set; }
83+
}
84+
8085
public class ClassParent
8186
{
8287
public ClassBase Dim0 { get; set; }
@@ -214,5 +219,17 @@ public void SerializeInherit()
214219
var dest2 = BitSerializer.Deserialize<ClassInherit>(bytes2);
215220
Assert.Equal(((ClassInherit)src2).Dim1, ((ClassInherit)dest2).Dim1);
216221
}
222+
223+
[Fact]
224+
public void DeserializeSize()
225+
{
226+
var src = new ClassSize() {
227+
Dim1 = new Size(600, 300)
228+
};
229+
var bytes = BitSerializer.Serialize(src);
230+
var dest = BitSerializer.Deserialize<ClassSize>(bytes);
231+
Assert.Equal(src.Dim1.Height, dest.Dim1.Height);
232+
Assert.Equal(src.Dim1.Width, dest.Dim1.Width);
233+
}
217234
}
218235
}

0 commit comments

Comments
 (0)