Skip to content

Commit 61a7ece

Browse files
committed
feat: 新增 序列化器接口定义
1 parent f6c52a0 commit 61a7ece

29 files changed

+548
-222
lines changed

Bing.All.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "props", "props", "{D77F42E0
170170
asset\props\misc.props = asset\props\misc.props
171171
asset\props\package.props = asset\props\package.props
172172
asset\props\sourcelink.env.props = asset\props\sourcelink.env.props
173+
asset\props\target.feature.props = asset\props\target.feature.props
173174
EndProjectSection
174175
EndProject
175176
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bing.Admin.Data.FreeSQL", "modules\admin\src\Bing.Admin.Data.FreeSQL\Bing.Admin.Data.FreeSQL.csproj", "{05DFA67F-C861-48F9-BBD9-7777972A918F}"

asset/props/target.feature.props

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<Project>
2+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
3+
<ImplicitUsings>enable</ImplicitUsings>
4+
<Nullable>disable</Nullable>
5+
</PropertyGroup>
6+
7+
<PropertyGroup Condition=" '$(TargetFramework)' == 'net5.0' ">
8+
<ImplicitUsings>enable</ImplicitUsings>
9+
<Nullable>disable</Nullable>
10+
</PropertyGroup>
11+
12+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
13+
<ImplicitUsings>enable</ImplicitUsings>
14+
<Nullable>disable</Nullable>
15+
</PropertyGroup>
16+
17+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
18+
<ImplicitUsings>enable</ImplicitUsings>
19+
<Nullable>disable</Nullable>
20+
</PropertyGroup>
21+
22+
</Project>

common.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
<DocumentationFile>$(AssemblyName).xml</DocumentationFile>
2323
</PropertyGroup>
2424

25+
<Import Project="asset/props/target.feature.props"/>
26+
2527
<Import Project="asset/props/sourcelink.env.props"/>
2628

2729
<Import Project="asset/props/package.props"/>
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2-
<Import Project="project.props" />
2+
<PropertyGroup>
3+
<TargetFrameworks>net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;</TargetFrameworks>
4+
</PropertyGroup>
35

4-
<Import Project="project.dependency.props" />
6+
<PropertyGroup>
7+
<AssemblyName>Bing.Abstractions</AssemblyName>
8+
<PackageId>Bing.Abstractions</PackageId>
9+
<Description>Bing.Abstractions是Bing应用框架的核心抽象类库。</Description>
10+
</PropertyGroup>
511

6-
<Import Project="..\..\..\framework.props" />
12+
<Import Project="dependency.props" />
13+
14+
<Import Project="..\..\..\common.props" />
715

816
</Project>

framework/src/Bing.Abstractions/Bing/Mapping/IObjectMapper.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

framework/src/Bing.Abstractions/Bing/Mapping/IObjectMapper`1.cs

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
namespace Bing.Serialization;
2+
3+
/// <summary>
4+
/// Bssom 序列化器
5+
/// </summary>
6+
public interface IBssomSerializer : IObjectSerializer<byte[]>, IBytesSerializer, IStreamSerializerAsync
7+
{
8+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
namespace Bing.Serialization;
2+
3+
/// <summary>
4+
/// 字节数组对象序列化器元接口
5+
/// </summary>
6+
public interface IBytesSerializer : IStreamSerializer
7+
{
8+
/// <summary>
9+
/// 将字节数组反序列化为对象
10+
/// </summary>
11+
/// <typeparam name="TValue">对象类型</typeparam>
12+
/// <param name="bytes">字节数组</param>
13+
/// <returns>如果 bytes 为 null 或为空,将返回 TValue 的默认值</returns>
14+
TValue FromBytes<TValue>(byte[] bytes);
15+
16+
/// <summary>
17+
/// 将字节数组反序列化为对象
18+
/// </summary>
19+
/// <param name="type">对象类型</param>
20+
/// <param name="bytes">字节数组</param>
21+
/// <returns>如果 bytes 为 null 或为空,将返回 type 的默认值</returns>
22+
object FromBytes(Type type, byte[] bytes);
23+
24+
/// <summary>
25+
/// 序列化为字节数组
26+
/// </summary>
27+
/// <typeparam name="TValue">序列化对象类型</typeparam>
28+
/// <param name="value">值</param>
29+
byte[] ToBytes<TValue>(TValue value);
30+
31+
/// <summary>
32+
/// 序列化为字节数组
33+
/// </summary>
34+
/// <param name="type">序列化对象类型</param>
35+
/// <param name="value">值</param>
36+
byte[] ToBytes(Type type, object value);
37+
}
Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
1-
namespace Bing.Serialization
1+
namespace Bing.Serialization;
2+
3+
/// <summary>
4+
/// Json 序列化器
5+
/// </summary>
6+
public interface IJsonSerializer : IObjectSerializer, ITextSerializer
27
{
38
/// <summary>
4-
/// Json 序列化器
9+
/// 将Json字符串反序列化为对象
510
/// </summary>
6-
public interface IJsonSerializer : IObjectSerializer { }
11+
/// <typeparam name="TValue">对象类型</typeparam>
12+
/// <param name="json">json字符串</param>
13+
/// <returns>如果 json 为 null 或为空,将返回 TValue 的默认值</returns>
14+
TValue FromJson<TValue>(string json);
15+
16+
/// <summary>
17+
/// 将Json字符串反序列化为对象
18+
/// </summary>
19+
/// <param name="type">对象类型</param>
20+
/// <param name="json">json字符串</param>
21+
/// <returns>如果 json 为 null 或为空,将返回 type 的默认值</returns>
22+
object FromJson(Type type, string json);
23+
24+
/// <summary>
25+
/// 序列化为Json字符串
26+
/// </summary>
27+
/// <typeparam name="TValue">序列化对象类型</typeparam>
28+
/// <param name="value">值</param>
29+
string ToJson<TValue>(TValue value);
30+
31+
/// <summary>
32+
/// 序列化为Json字符串
33+
/// </summary>
34+
/// <param name="type">序列化对象类型</param>
35+
/// <param name="value">值</param>
36+
string ToJson(Type type, object value);
737
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace Bing.Serialization;
2+
3+
/// <summary>
4+
/// Json 序列化器配置入口
5+
/// </summary>
6+
public interface IJsonSerializerConfigureEntry
7+
{
8+
/// <summary>
9+
/// 配置Json序列化器
10+
/// </summary>
11+
/// <param name="serializer">Json序列化器</param>
12+
void ConfigureJsonSerializer(IJsonSerializer serializer);
13+
14+
/// <summary>
15+
/// 配置Json序列化器
16+
/// </summary>
17+
/// <param name="serializerFactory">Json序列化器工厂</param>
18+
void ConfigureJsonSerializer(Func<IJsonSerializer> serializerFactory);
19+
}

0 commit comments

Comments
 (0)