diff --git a/examples/Adapter/AdapterConsoleApp/AdapterConsoleApp.csproj b/examples/Adapter/AdapterConsoleApp/AdapterConsoleApp.csproj
index 6e0b0fa2f..05983e7b5 100644
--- a/examples/Adapter/AdapterConsoleApp/AdapterConsoleApp.csproj
+++ b/examples/Adapter/AdapterConsoleApp/AdapterConsoleApp.csproj
@@ -6,6 +6,6 @@
-
+
diff --git a/examples/Adapter/AdapterTesterConsoleApp/AdapterTesterConsoleApp.csproj b/examples/Adapter/AdapterTesterConsoleApp/AdapterTesterConsoleApp.csproj
index 58468e977..740320c3f 100644
--- a/examples/Adapter/AdapterTesterConsoleApp/AdapterTesterConsoleApp.csproj
+++ b/examples/Adapter/AdapterTesterConsoleApp/AdapterTesterConsoleApp.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/examples/Adapter/BetweenAndConsoleApp/BetweenAndConsoleApp.csproj b/examples/Adapter/BetweenAndConsoleApp/BetweenAndConsoleApp.csproj
index 44de1e102..cadc57235 100644
--- a/examples/Adapter/BetweenAndConsoleApp/BetweenAndConsoleApp.csproj
+++ b/examples/Adapter/BetweenAndConsoleApp/BetweenAndConsoleApp.csproj
@@ -9,6 +9,6 @@
-
+
diff --git a/examples/Adapter/CustomAdapterConsoleApp/CustomAdapterConsoleApp.csproj b/examples/Adapter/CustomAdapterConsoleApp/CustomAdapterConsoleApp.csproj
index f3bc4bd25..0885daba6 100644
--- a/examples/Adapter/CustomAdapterConsoleApp/CustomAdapterConsoleApp.csproj
+++ b/examples/Adapter/CustomAdapterConsoleApp/CustomAdapterConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Adapter/CustomBigFixedHeaderConsoleApp/CustomBigFixedHeaderConsoleApp.csproj b/examples/Adapter/CustomBigFixedHeaderConsoleApp/CustomBigFixedHeaderConsoleApp.csproj
index a22c9c661..33068a751 100644
--- a/examples/Adapter/CustomBigFixedHeaderConsoleApp/CustomBigFixedHeaderConsoleApp.csproj
+++ b/examples/Adapter/CustomBigFixedHeaderConsoleApp/CustomBigFixedHeaderConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Adapter/CustomBigUnfixedHeaderConsoleApp/CustomBigUnfixedHeaderConsoleApp.csproj b/examples/Adapter/CustomBigUnfixedHeaderConsoleApp/CustomBigUnfixedHeaderConsoleApp.csproj
index 3cfca180b..c936054e2 100644
--- a/examples/Adapter/CustomBigUnfixedHeaderConsoleApp/CustomBigUnfixedHeaderConsoleApp.csproj
+++ b/examples/Adapter/CustomBigUnfixedHeaderConsoleApp/CustomBigUnfixedHeaderConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Adapter/CustomFixedHeaderConsoleApp/CustomFixedHeaderConsoleApp.csproj b/examples/Adapter/CustomFixedHeaderConsoleApp/CustomFixedHeaderConsoleApp.csproj
index a22c9c661..33068a751 100644
--- a/examples/Adapter/CustomFixedHeaderConsoleApp/CustomFixedHeaderConsoleApp.csproj
+++ b/examples/Adapter/CustomFixedHeaderConsoleApp/CustomFixedHeaderConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Adapter/CustomUnfixedHeaderConsoleApp/CustomUnfixedHeaderConsoleApp.csproj b/examples/Adapter/CustomUnfixedHeaderConsoleApp/CustomUnfixedHeaderConsoleApp.csproj
index d5e14afd8..bf9b11716 100644
--- a/examples/Adapter/CustomUnfixedHeaderConsoleApp/CustomUnfixedHeaderConsoleApp.csproj
+++ b/examples/Adapter/CustomUnfixedHeaderConsoleApp/CustomUnfixedHeaderConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Adapter/PackageAdapterConsoleApp/PackageAdapterConsoleApp.csproj b/examples/Adapter/PackageAdapterConsoleApp/PackageAdapterConsoleApp.csproj
index 3cfca180b..c936054e2 100644
--- a/examples/Adapter/PackageAdapterConsoleApp/PackageAdapterConsoleApp.csproj
+++ b/examples/Adapter/PackageAdapterConsoleApp/PackageAdapterConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Adapter/TLVWinFormsApp/TLVWinFormsApp.csproj b/examples/Adapter/TLVWinFormsApp/TLVWinFormsApp.csproj
index 6b058e744..b811b950c 100644
--- a/examples/Adapter/TLVWinFormsApp/TLVWinFormsApp.csproj
+++ b/examples/Adapter/TLVWinFormsApp/TLVWinFormsApp.csproj
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/BlogsDemos/AccessRestrictionsConsoleApp/AccessRestrictionsConsoleApp.csproj b/examples/BlogsDemos/AccessRestrictionsConsoleApp/AccessRestrictionsConsoleApp.csproj
index 26b173145..6aebd00c1 100644
--- a/examples/BlogsDemos/AccessRestrictionsConsoleApp/AccessRestrictionsConsoleApp.csproj
+++ b/examples/BlogsDemos/AccessRestrictionsConsoleApp/AccessRestrictionsConsoleApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/BlogsDemos/DifferentProtocolConsoleApp/DifferentProtocolConsoleApp.csproj b/examples/BlogsDemos/DifferentProtocolConsoleApp/DifferentProtocolConsoleApp.csproj
index 26b173145..6aebd00c1 100644
--- a/examples/BlogsDemos/DifferentProtocolConsoleApp/DifferentProtocolConsoleApp.csproj
+++ b/examples/BlogsDemos/DifferentProtocolConsoleApp/DifferentProtocolConsoleApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/BlogsDemos/HeartbeatConsoleApp/HeartbeatConsoleApp.csproj b/examples/BlogsDemos/HeartbeatConsoleApp/HeartbeatConsoleApp.csproj
index d644fcd3a..bbbc92f80 100644
--- a/examples/BlogsDemos/HeartbeatConsoleApp/HeartbeatConsoleApp.csproj
+++ b/examples/BlogsDemos/HeartbeatConsoleApp/HeartbeatConsoleApp.csproj
@@ -6,6 +6,6 @@
-
+
diff --git a/examples/BlogsDemos/LimitNumberOfConnectionsConsoleApp/LimitNumberOfConnectionsConsoleApp.csproj b/examples/BlogsDemos/LimitNumberOfConnectionsConsoleApp/LimitNumberOfConnectionsConsoleApp.csproj
index 2034b9210..c3bacf40e 100644
--- a/examples/BlogsDemos/LimitNumberOfConnectionsConsoleApp/LimitNumberOfConnectionsConsoleApp.csproj
+++ b/examples/BlogsDemos/LimitNumberOfConnectionsConsoleApp/LimitNumberOfConnectionsConsoleApp.csproj
@@ -6,12 +6,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/BlogsDemos/ThrottlingConsoleApp/ThrottlingConsoleApp.csproj b/examples/BlogsDemos/ThrottlingConsoleApp/ThrottlingConsoleApp.csproj
index 2034b9210..c3bacf40e 100644
--- a/examples/BlogsDemos/ThrottlingConsoleApp/ThrottlingConsoleApp.csproj
+++ b/examples/BlogsDemos/ThrottlingConsoleApp/ThrottlingConsoleApp.csproj
@@ -6,12 +6,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/BlogsDemos/TrafficCounterConsoleApp/TrafficCounterConsoleApp.csproj b/examples/BlogsDemos/TrafficCounterConsoleApp/TrafficCounterConsoleApp.csproj
index 57050aba4..4194c5d46 100644
--- a/examples/BlogsDemos/TrafficCounterConsoleApp/TrafficCounterConsoleApp.csproj
+++ b/examples/BlogsDemos/TrafficCounterConsoleApp/TrafficCounterConsoleApp.csproj
@@ -6,11 +6,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Consul集群示例/ConsulConsoleApp/ConsulConsoleApp.csproj b/examples/Consul集群示例/ConsulConsoleApp/ConsulConsoleApp.csproj
index a98fae57b..1ffb3e9ee 100644
--- a/examples/Consul集群示例/ConsulConsoleApp/ConsulConsoleApp.csproj
+++ b/examples/Consul集群示例/ConsulConsoleApp/ConsulConsoleApp.csproj
@@ -7,12 +7,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Consul集群示例/TouchRpc Consul集群/ServiceConsoleApp/ServiceConsoleApp.csproj b/examples/Consul集群示例/TouchRpc Consul集群/ServiceConsoleApp/ServiceConsoleApp.csproj
index a98fae57b..1ffb3e9ee 100644
--- a/examples/Consul集群示例/TouchRpc Consul集群/ServiceConsoleApp/ServiceConsoleApp.csproj
+++ b/examples/Consul集群示例/TouchRpc Consul集群/ServiceConsoleApp/ServiceConsoleApp.csproj
@@ -7,12 +7,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Consul集群示例/TouchRpc Consul集群/WinFormsApp/WinFormsApp.csproj b/examples/Consul集群示例/TouchRpc Consul集群/WinFormsApp/WinFormsApp.csproj
index 37e977509..8e74dfe37 100644
--- a/examples/Consul集群示例/TouchRpc Consul集群/WinFormsApp/WinFormsApp.csproj
+++ b/examples/Consul集群示例/TouchRpc Consul集群/WinFormsApp/WinFormsApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/Core/AppMessengerWinApp/AppMessengerWinApp.csproj b/examples/Core/AppMessengerWinApp/AppMessengerWinApp.csproj
index 6918d983e..fe323db4b 100644
--- a/examples/Core/AppMessengerWinApp/AppMessengerWinApp.csproj
+++ b/examples/Core/AppMessengerWinApp/AppMessengerWinApp.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/Core/BytePoolConsoleApp/BytePoolConsoleApp.csproj b/examples/Core/BytePoolConsoleApp/BytePoolConsoleApp.csproj
index 3e29990fb..7d3b262ea 100644
--- a/examples/Core/BytePoolConsoleApp/BytePoolConsoleApp.csproj
+++ b/examples/Core/BytePoolConsoleApp/BytePoolConsoleApp.csproj
@@ -5,11 +5,11 @@
net6.0
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Core/FastBinaryFormatterConsoleApp/FastBinaryFormatterConsoleApp.csproj b/examples/Core/FastBinaryFormatterConsoleApp/FastBinaryFormatterConsoleApp.csproj
index e4214c3a2..e3cea9363 100644
--- a/examples/Core/FastBinaryFormatterConsoleApp/FastBinaryFormatterConsoleApp.csproj
+++ b/examples/Core/FastBinaryFormatterConsoleApp/FastBinaryFormatterConsoleApp.csproj
@@ -17,6 +17,6 @@
-->
-
+
diff --git a/examples/Core/IocConsoleApp/IocConsoleApp.csproj b/examples/Core/IocConsoleApp/IocConsoleApp.csproj
index 9b70f93e0..5064ce837 100644
--- a/examples/Core/IocConsoleApp/IocConsoleApp.csproj
+++ b/examples/Core/IocConsoleApp/IocConsoleApp.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/examples/Core/Log4netConsoleApp/Log4netConsoleApp.csproj b/examples/Core/Log4netConsoleApp/Log4netConsoleApp.csproj
index 5926985ad..3bea9cd20 100644
--- a/examples/Core/Log4netConsoleApp/Log4netConsoleApp.csproj
+++ b/examples/Core/Log4netConsoleApp/Log4netConsoleApp.csproj
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Core/LoggerConsoleApp/LoggerConsoleApp.csproj b/examples/Core/LoggerConsoleApp/LoggerConsoleApp.csproj
index 3cfca180b..c936054e2 100644
--- a/examples/Core/LoggerConsoleApp/LoggerConsoleApp.csproj
+++ b/examples/Core/LoggerConsoleApp/LoggerConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Core/PackageConsoleApp/PackageConsoleApp.csproj b/examples/Core/PackageConsoleApp/PackageConsoleApp.csproj
index 44d5fc96e..5be1e5b0a 100644
--- a/examples/Core/PackageConsoleApp/PackageConsoleApp.csproj
+++ b/examples/Core/PackageConsoleApp/PackageConsoleApp.csproj
@@ -6,11 +6,11 @@
enable
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Core/PluginConsoleApp/PluginConsoleApp.csproj b/examples/Core/PluginConsoleApp/PluginConsoleApp.csproj
index 80b78a4f4..bbd12fa9b 100644
--- a/examples/Core/PluginConsoleApp/PluginConsoleApp.csproj
+++ b/examples/Core/PluginConsoleApp/PluginConsoleApp.csproj
@@ -6,6 +6,6 @@
-
+
diff --git a/examples/Dmtp/CustomDmtpActorConsoleApp/CustomDmtpActorConsoleApp.csproj b/examples/Dmtp/CustomDmtpActorConsoleApp/CustomDmtpActorConsoleApp.csproj
index 76f36bec3..4849fb66c 100644
--- a/examples/Dmtp/CustomDmtpActorConsoleApp/CustomDmtpActorConsoleApp.csproj
+++ b/examples/Dmtp/CustomDmtpActorConsoleApp/CustomDmtpActorConsoleApp.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/examples/Dmtp/DispatchProxyDmtpRpcConsoleApp/DispatchProxyDmtpRpcConsoleApp.csproj b/examples/Dmtp/DispatchProxyDmtpRpcConsoleApp/DispatchProxyDmtpRpcConsoleApp.csproj
index 268eb2b4f..dbd9ca393 100644
--- a/examples/Dmtp/DispatchProxyDmtpRpcConsoleApp/DispatchProxyDmtpRpcConsoleApp.csproj
+++ b/examples/Dmtp/DispatchProxyDmtpRpcConsoleApp/DispatchProxyDmtpRpcConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Dmtp/DmtpAspnetcoreConsoleApp/DmtpAspnetcoreConsoleApp.csproj b/examples/Dmtp/DmtpAspnetcoreConsoleApp/DmtpAspnetcoreConsoleApp.csproj
index 91afa854c..ff5050450 100644
--- a/examples/Dmtp/DmtpAspnetcoreConsoleApp/DmtpAspnetcoreConsoleApp.csproj
+++ b/examples/Dmtp/DmtpAspnetcoreConsoleApp/DmtpAspnetcoreConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/DmtpChannelConsoleApp/DmtpChannelConsoleApp.csproj b/examples/Dmtp/DmtpChannelConsoleApp/DmtpChannelConsoleApp.csproj
index 268eb2b4f..dbd9ca393 100644
--- a/examples/Dmtp/DmtpChannelConsoleApp/DmtpChannelConsoleApp.csproj
+++ b/examples/Dmtp/DmtpChannelConsoleApp/DmtpChannelConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Dmtp/DmtpConsoleApp/DmtpConsoleApp.csproj b/examples/Dmtp/DmtpConsoleApp/DmtpConsoleApp.csproj
index f2ea6760a..35ece1d14 100644
--- a/examples/Dmtp/DmtpConsoleApp/DmtpConsoleApp.csproj
+++ b/examples/Dmtp/DmtpConsoleApp/DmtpConsoleApp.csproj
@@ -26,7 +26,7 @@
-->
-
+
diff --git a/examples/Dmtp/DmtpRedisConsoleApp/DmtpRedisConsoleApp.csproj b/examples/Dmtp/DmtpRedisConsoleApp/DmtpRedisConsoleApp.csproj
index 91afa854c..ff5050450 100644
--- a/examples/Dmtp/DmtpRedisConsoleApp/DmtpRedisConsoleApp.csproj
+++ b/examples/Dmtp/DmtpRedisConsoleApp/DmtpRedisConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/DmtpRpcClientApp/DmtpRpcClientApp.csproj b/examples/Dmtp/DmtpRpcClientApp/DmtpRpcClientApp.csproj
index a24b910b5..182427b74 100644
--- a/examples/Dmtp/DmtpRpcClientApp/DmtpRpcClientApp.csproj
+++ b/examples/Dmtp/DmtpRpcClientApp/DmtpRpcClientApp.csproj
@@ -6,11 +6,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/Dmtp/DmtpRpcClientConsoleApp/DmtpRpcClientConsoleApp.csproj b/examples/Dmtp/DmtpRpcClientConsoleApp/DmtpRpcClientConsoleApp.csproj
index 46df071cc..8d190ea99 100644
--- a/examples/Dmtp/DmtpRpcClientConsoleApp/DmtpRpcClientConsoleApp.csproj
+++ b/examples/Dmtp/DmtpRpcClientConsoleApp/DmtpRpcClientConsoleApp.csproj
@@ -12,6 +12,6 @@
-
+
diff --git a/examples/Dmtp/DmtpRpcServerConsoleApp/DmtpRpcServerConsoleApp.csproj b/examples/Dmtp/DmtpRpcServerConsoleApp/DmtpRpcServerConsoleApp.csproj
index 91afa854c..ff5050450 100644
--- a/examples/Dmtp/DmtpRpcServerConsoleApp/DmtpRpcServerConsoleApp.csproj
+++ b/examples/Dmtp/DmtpRpcServerConsoleApp/DmtpRpcServerConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/DmtpWebApplication/DmtpWebApplication.csproj b/examples/Dmtp/DmtpWebApplication/DmtpWebApplication.csproj
index 992e0356a..d493f0938 100644
--- a/examples/Dmtp/DmtpWebApplication/DmtpWebApplication.csproj
+++ b/examples/Dmtp/DmtpWebApplication/DmtpWebApplication.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/examples/Dmtp/FileTransferConsoleApp/FileTransferConsoleApp.csproj b/examples/Dmtp/FileTransferConsoleApp/FileTransferConsoleApp.csproj
index 5c4ff4fd7..17dd5418f 100644
--- a/examples/Dmtp/FileTransferConsoleApp/FileTransferConsoleApp.csproj
+++ b/examples/Dmtp/FileTransferConsoleApp/FileTransferConsoleApp.csproj
@@ -35,6 +35,6 @@
-->
-
+
diff --git a/examples/Dmtp/GeneratorRpcProxyConsoleApp/GeneratorRpcProxyConsoleApp.csproj b/examples/Dmtp/GeneratorRpcProxyConsoleApp/GeneratorRpcProxyConsoleApp.csproj
index b622fbc06..f1e1af353 100644
--- a/examples/Dmtp/GeneratorRpcProxyConsoleApp/GeneratorRpcProxyConsoleApp.csproj
+++ b/examples/Dmtp/GeneratorRpcProxyConsoleApp/GeneratorRpcProxyConsoleApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Dmtp/NamedPipeDmtpConsoleApp/NamedPipeDmtpConsoleApp.csproj b/examples/Dmtp/NamedPipeDmtpConsoleApp/NamedPipeDmtpConsoleApp.csproj
index 2bdd40b07..4d8b6c52c 100644
--- a/examples/Dmtp/NamedPipeDmtpConsoleApp/NamedPipeDmtpConsoleApp.csproj
+++ b/examples/Dmtp/NamedPipeDmtpConsoleApp/NamedPipeDmtpConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/RealityProxyDmtpRpcConsoleApp/RealityProxyDmtpRpcConsoleApp.csproj b/examples/Dmtp/RealityProxyDmtpRpcConsoleApp/RealityProxyDmtpRpcConsoleApp.csproj
index 973cfa2cf..142635635 100644
--- a/examples/Dmtp/RealityProxyDmtpRpcConsoleApp/RealityProxyDmtpRpcConsoleApp.csproj
+++ b/examples/Dmtp/RealityProxyDmtpRpcConsoleApp/RealityProxyDmtpRpcConsoleApp.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/examples/Dmtp/RecommendRpcConsoleApp/RecommendRpcConsoleApp.csproj b/examples/Dmtp/RecommendRpcConsoleApp/RecommendRpcConsoleApp.csproj
index b256a739f..a1e5b5f27 100644
--- a/examples/Dmtp/RecommendRpcConsoleApp/RecommendRpcConsoleApp.csproj
+++ b/examples/Dmtp/RecommendRpcConsoleApp/RecommendRpcConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/RemoteAccessApp/RemoteAccessApp.csproj b/examples/Dmtp/RemoteAccessApp/RemoteAccessApp.csproj
index f9ad0a41c..be8722812 100644
--- a/examples/Dmtp/RemoteAccessApp/RemoteAccessApp.csproj
+++ b/examples/Dmtp/RemoteAccessApp/RemoteAccessApp.csproj
@@ -10,11 +10,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/Dmtp/RemoteStreamConsoleApp/RemoteStreamConsoleApp.csproj b/examples/Dmtp/RemoteStreamConsoleApp/RemoteStreamConsoleApp.csproj
index 2bdd40b07..4d8b6c52c 100644
--- a/examples/Dmtp/RemoteStreamConsoleApp/RemoteStreamConsoleApp.csproj
+++ b/examples/Dmtp/RemoteStreamConsoleApp/RemoteStreamConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Dmtp/ReverseRpcConsoleApp/ReverseRpcConsoleApp.csproj b/examples/Dmtp/ReverseRpcConsoleApp/ReverseRpcConsoleApp.csproj
index bd72afaaa..43bd1e56e 100644
--- a/examples/Dmtp/ReverseRpcConsoleApp/ReverseRpcConsoleApp.csproj
+++ b/examples/Dmtp/ReverseRpcConsoleApp/ReverseRpcConsoleApp.csproj
@@ -6,11 +6,11 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Dmtp/RouterPackageConsoleApp/RouterPackageConsoleApp.csproj b/examples/Dmtp/RouterPackageConsoleApp/RouterPackageConsoleApp.csproj
index 71c1836de..ff098d4b5 100644
--- a/examples/Dmtp/RouterPackageConsoleApp/RouterPackageConsoleApp.csproj
+++ b/examples/Dmtp/RouterPackageConsoleApp/RouterPackageConsoleApp.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/examples/Dmtp/RpcClassLibrary/RpcClassLibrary.csproj b/examples/Dmtp/RpcClassLibrary/RpcClassLibrary.csproj
index 920aac18a..5bf388fd9 100644
--- a/examples/Dmtp/RpcClassLibrary/RpcClassLibrary.csproj
+++ b/examples/Dmtp/RpcClassLibrary/RpcClassLibrary.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/examples/Dmtp/RpcFactoryConsoleApp/RpcFactoryConsoleApp.csproj b/examples/Dmtp/RpcFactoryConsoleApp/RpcFactoryConsoleApp.csproj
index b622fbc06..f1e1af353 100644
--- a/examples/Dmtp/RpcFactoryConsoleApp/RpcFactoryConsoleApp.csproj
+++ b/examples/Dmtp/RpcFactoryConsoleApp/RpcFactoryConsoleApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Dmtp/RpcImplementationClassLibrary/RpcImplementationClassLibrary.csproj b/examples/Dmtp/RpcImplementationClassLibrary/RpcImplementationClassLibrary.csproj
index b396ec4fe..09473341c 100644
--- a/examples/Dmtp/RpcImplementationClassLibrary/RpcImplementationClassLibrary.csproj
+++ b/examples/Dmtp/RpcImplementationClassLibrary/RpcImplementationClassLibrary.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/examples/Dmtp/RpcStreamConsoleApp/RpcStreamConsoleApp.csproj b/examples/Dmtp/RpcStreamConsoleApp/RpcStreamConsoleApp.csproj
index 26b173145..6aebd00c1 100644
--- a/examples/Dmtp/RpcStreamConsoleApp/RpcStreamConsoleApp.csproj
+++ b/examples/Dmtp/RpcStreamConsoleApp/RpcStreamConsoleApp.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Dmtp/SerializationSelectorClassLibrary/MemoryPackSerializationSelector.cs b/examples/Dmtp/SerializationSelectorClassLibrary/MemoryPackSerializationSelector.cs
index 1150081ee..76f2d64c8 100644
--- a/examples/Dmtp/SerializationSelectorClassLibrary/MemoryPackSerializationSelector.cs
+++ b/examples/Dmtp/SerializationSelectorClassLibrary/MemoryPackSerializationSelector.cs
@@ -11,10 +11,13 @@
//------------------------------------------------------------------------------
using MemoryPack;
+using Newtonsoft.Json;
using System;
using System.IO;
+using System.Runtime.Serialization;
using TouchSocket.Core;
using TouchSocket.Dmtp.Rpc;
+using TouchSocket.Rpc;
namespace SerializationSelectorClassLibrary
{
@@ -31,7 +34,7 @@ namespace SerializationSelectorClassLibrary
{
var pos = byteBlock.Position;
byteBlock.Seek(4, SeekOrigin.Current);
- var memoryPackWriter = new MemoryPack.MemoryPackWriter(ref byteBlock, null);
+ var memoryPackWriter = new MemoryPackWriter(ref byteBlock, null);
MemoryPackSerializer.Serialize(parameter.GetType(), ref memoryPackWriter, parameter);
@@ -41,4 +44,159 @@ namespace SerializationSelectorClassLibrary
byteBlock.Position = newPos;
}
}
+
+ internal sealed class DefaultSerializationSelector : ISerializationSelector
+ {
+ ///
+ /// 根据指定的序列化类型反序列化字节块中的数据。
+ ///
+ /// 包含序列化数据的字节块。
+ /// 指定的序列化类型。
+ /// 预期反序列化出的对象类型。
+ /// 反序列化后的对象。
+ /// 抛出当未识别序列化类型时。
+ public object DeserializeParameter(ref TByteBlock byteBlock, SerializationType serializationType, Type parameterType) where TByteBlock : IByteBlock
+ {
+ // 根据序列化类型选择不同的反序列化方式
+ switch (serializationType)
+ {
+ case SerializationType.FastBinary:
+ // 使用FastBinary格式进行反序列化
+ return FastBinaryFormatter.Deserialize(ref byteBlock, parameterType);
+ case SerializationType.SystemBinary:
+ // 检查字节块是否为null
+ if (byteBlock.ReadIsNull())
+ {
+ // 如果为null,则返回该类型的默认值
+ return parameterType.GetDefault();
+ }
+
+ // 使用SystemBinary格式进行反序列化
+ using (var block = byteBlock.ReadByteBlock())
+ {
+ // 将字节块转换为流并进行反序列化
+ return SerializeConvert.BinaryDeserialize(block.AsStream());
+ }
+ case SerializationType.Json:
+ // 检查字节块是否为null
+ if (byteBlock.ReadIsNull())
+ {
+ // 如果为null,则返回该类型的默认值
+ return parameterType.GetDefault();
+ }
+
+ // 使用Json格式进行反序列化
+ return JsonConvert.DeserializeObject(byteBlock.ReadString(), parameterType);
+
+ case SerializationType.Xml:
+ // 检查字节块是否为null
+ if (byteBlock.ReadIsNull())
+ {
+ // 如果为null,则返回该类型的默认值
+ return parameterType.GetDefault();
+ }
+ // 使用Xml格式进行反序列化
+ return SerializeConvert.XmlDeserializeFromBytes(byteBlock.ReadBytesPackage(), parameterType);
+ case (SerializationType)4:
+ {
+ var len = byteBlock.ReadInt32();
+ var span = byteBlock.ReadToSpan(len);
+ return MemoryPackSerializer.Deserialize(parameterType, span);
+ }
+ default:
+ // 如果序列化类型未识别,则抛出异常
+ throw new RpcException("未指定的反序列化方式");
+ }
+ }
+
+ ///
+ /// 序列化参数
+ ///
+ /// 字节块引用,用于存储序列化后的数据
+ /// 序列化类型,决定了使用哪种方式序列化
+ /// 待序列化的参数对象
+ /// 字节块类型,必须实现IByteBlock接口
+ public void SerializeParameter(ref TByteBlock byteBlock, SerializationType serializationType, in object parameter) where TByteBlock : IByteBlock
+ {
+ // 根据序列化类型选择不同的序列化方法
+ switch (serializationType)
+ {
+ case SerializationType.FastBinary:
+ {
+ // 使用FastBinaryFormatter进行序列化
+ FastBinaryFormatter.Serialize(ref byteBlock, parameter);
+ break;
+ }
+ case SerializationType.SystemBinary:
+ {
+ // 参数为null时,写入空值标记
+ if (parameter is null)
+ {
+ byteBlock.WriteNull();
+ }
+ else
+ {
+ // 参数不为null时,标记并序列化参数
+ byteBlock.WriteNotNull();
+ using (var block = new ByteBlock(1024 * 64))
+ {
+ // 使用System.Runtime.Serialization.BinaryFormatter进行序列化
+ SerializeConvert.BinarySerialize(block.AsStream(), parameter);
+ // 将序列化后的字节块写入byteBlock
+ byteBlock.WriteByteBlock(block);
+ }
+ }
+ break;
+ }
+ case SerializationType.Json:
+ {
+ // 参数为null时,写入空值标记
+ if (parameter is null)
+ {
+ byteBlock.WriteNull();
+ }
+ else
+ {
+ // 参数不为null时,标记并转换为JSON字符串
+ byteBlock.WriteNotNull();
+ byteBlock.WriteString(JsonConvert.SerializeObject(parameter));
+ }
+ break;
+ }
+ case SerializationType.Xml:
+ {
+ // 参数为null时,写入空值标记
+ if (parameter is null)
+ {
+ byteBlock.WriteNull();
+ }
+ else
+ {
+ // 参数不为null时,标记并转换为Xml字节
+ byteBlock.WriteNotNull();
+ byteBlock.WriteBytesPackage(SerializeConvert.XmlSerializeToBytes(parameter));
+ }
+ break;
+ }
+ case (SerializationType)4:
+ {
+ var pos = byteBlock.Position;
+ byteBlock.Seek(4, SeekOrigin.Current);
+ var memoryPackWriter = new MemoryPackWriter(ref byteBlock, null);
+
+ MemoryPackSerializer.Serialize(parameter.GetType(), ref memoryPackWriter, parameter);
+
+ var newPos = byteBlock.Position;
+ byteBlock.Position = pos;
+ byteBlock.WriteInt32(memoryPackWriter.WrittenCount);
+ byteBlock.Position = newPos;
+
+ break;
+ }
+ default:
+ // 抛出异常,提示未指定的序列化方式
+ throw new RpcException("未指定的序列化方式");
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/examples/Dmtp/SerializationSelectorClassLibrary/SerializationSelectorClassLibrary.csproj b/examples/Dmtp/SerializationSelectorClassLibrary/SerializationSelectorClassLibrary.csproj
index 406259fb7..526098764 100644
--- a/examples/Dmtp/SerializationSelectorClassLibrary/SerializationSelectorClassLibrary.csproj
+++ b/examples/Dmtp/SerializationSelectorClassLibrary/SerializationSelectorClassLibrary.csproj
@@ -6,12 +6,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Dmtp/SerializationSelectorConsoleApp/Program.cs b/examples/Dmtp/SerializationSelectorConsoleApp/Program.cs
index 0b2870ca3..021080736 100644
--- a/examples/Dmtp/SerializationSelectorConsoleApp/Program.cs
+++ b/examples/Dmtp/SerializationSelectorConsoleApp/Program.cs
@@ -23,11 +23,11 @@ namespace SerializationSelectorConsoleApp
{
internal class Program
{
- private static void Main(string[] args)
+ private static async Task Main(string[] args)
{
- StartServer();
+ await StartServer();
- var client = CreateClient();
+ var client = await CreateClient();
InvokeOption invokeOption = new DmtpInvokeOption()
{
@@ -41,25 +41,34 @@ namespace SerializationSelectorConsoleApp
Console.ReadKey();
}
- private static TcpDmtpClient CreateClient()
+ private static async Task CreateClient()
{
var client = new TcpDmtpClient();
- client.SetupAsync(new TouchSocketConfig()
- .SetRemoteIPHost("127.0.0.1:7789")
- .ConfigurePlugins(a =>
- {
- a.UseDmtpRpc()
- .SetSerializationSelector(new MemoryPackSerializationSelector());
- })
- .SetDmtpOption(new DmtpOption()
- {
- VerifyToken = "Dmtp"
- }));
- client.ConnectAsync();
+ await client.SetupAsync(new TouchSocketConfig()
+ .SetRemoteIPHost("127.0.0.1:7789")
+ .ConfigurePlugins(a =>
+ {
+ a.UseDmtpRpc()
+ .SetSerializationSelector(new MemoryPackSerializationSelector());
+
+ //a.UseDmtpRpc()
+ // .SetSerializationSelector(new DefaultSerializationSelector()
+ // {
+ // //仅示例,实际使用时,请赋值有效值
+ // FastSerializerContext = default,
+ // JsonSerializerSettings = default,
+ // SerializationBinder = default,
+ // });
+ })
+ .SetDmtpOption(new DmtpOption()
+ {
+ VerifyToken = "Dmtp"
+ }));
+ await client.ConnectAsync();
return client;
}
- private static void StartServer()
+ private static async Task StartServer()
{
var service = new TcpDmtpService();
var config = new TouchSocketConfig()//配置
@@ -82,8 +91,8 @@ namespace SerializationSelectorConsoleApp
VerifyToken = "Dmtp"
});
- service.SetupAsync(config);
- service.StartAsync();
+ await service.SetupAsync(config);
+ await service.StartAsync();
service.Logger.Info($"{service.GetType().Name}已启动");
}
diff --git a/examples/Dmtp/SerializationSelectorConsoleApp/SerializationSelectorConsoleApp.csproj b/examples/Dmtp/SerializationSelectorConsoleApp/SerializationSelectorConsoleApp.csproj
index ecb3803ef..54708f25b 100644
--- a/examples/Dmtp/SerializationSelectorConsoleApp/SerializationSelectorConsoleApp.csproj
+++ b/examples/Dmtp/SerializationSelectorConsoleApp/SerializationSelectorConsoleApp.csproj
@@ -7,12 +7,12 @@
enable
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/examples/Hosting/HostingWorkerService/HostingWorkerService.csproj b/examples/Hosting/HostingWorkerService/HostingWorkerService.csproj
index efdbb6ba9..99d538308 100644
--- a/examples/Hosting/HostingWorkerService/HostingWorkerService.csproj
+++ b/examples/Hosting/HostingWorkerService/HostingWorkerService.csproj
@@ -9,7 +9,7 @@
-
-
+
+
diff --git a/examples/Http/HttpClientConsoleApp/HttpClientConsoleApp.csproj b/examples/Http/HttpClientConsoleApp/HttpClientConsoleApp.csproj
index 9279569b9..59fc66eab 100644
--- a/examples/Http/HttpClientConsoleApp/HttpClientConsoleApp.csproj
+++ b/examples/Http/HttpClientConsoleApp/HttpClientConsoleApp.csproj
@@ -7,6 +7,6 @@
-
+
diff --git a/examples/Http/HttpServiceConsoleApp/HttpServiceConsoleApp.csproj b/examples/Http/HttpServiceConsoleApp/HttpServiceConsoleApp.csproj
index 8305846fc..a8ca7ae0c 100644
--- a/examples/Http/HttpServiceConsoleApp/HttpServiceConsoleApp.csproj
+++ b/examples/Http/HttpServiceConsoleApp/HttpServiceConsoleApp.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/examples/Http/HttpServiceForCorsConsoleApp/HttpServiceForCorsConsoleApp.csproj b/examples/Http/HttpServiceForCorsConsoleApp/HttpServiceForCorsConsoleApp.csproj
index 7739cf804..9318acd28 100644
--- a/examples/Http/HttpServiceForCorsConsoleApp/HttpServiceForCorsConsoleApp.csproj
+++ b/examples/Http/HttpServiceForCorsConsoleApp/HttpServiceForCorsConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/JsonRpc/DispatchProxyJsonRpcClientConsoleApp/DispatchProxyJsonRpcClientConsoleApp.csproj b/examples/JsonRpc/DispatchProxyJsonRpcClientConsoleApp/DispatchProxyJsonRpcClientConsoleApp.csproj
index 640d28be7..4062e7cc7 100644
--- a/examples/JsonRpc/DispatchProxyJsonRpcClientConsoleApp/DispatchProxyJsonRpcClientConsoleApp.csproj
+++ b/examples/JsonRpc/DispatchProxyJsonRpcClientConsoleApp/DispatchProxyJsonRpcClientConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/JsonRpc/JsonRpcClientConsoleApp/JsonRpcClientConsoleApp.csproj b/examples/JsonRpc/JsonRpcClientConsoleApp/JsonRpcClientConsoleApp.csproj
index 4f23ab845..0c4d05606 100644
--- a/examples/JsonRpc/JsonRpcClientConsoleApp/JsonRpcClientConsoleApp.csproj
+++ b/examples/JsonRpc/JsonRpcClientConsoleApp/JsonRpcClientConsoleApp.csproj
@@ -12,6 +12,6 @@
-
+
diff --git a/examples/JsonRpc/JsonRpcConsoleApp/JsonRpcServiceConsoleApp.csproj b/examples/JsonRpc/JsonRpcConsoleApp/JsonRpcServiceConsoleApp.csproj
index a5255f6ef..2d28d636f 100644
--- a/examples/JsonRpc/JsonRpcConsoleApp/JsonRpcServiceConsoleApp.csproj
+++ b/examples/JsonRpc/JsonRpcConsoleApp/JsonRpcServiceConsoleApp.csproj
@@ -6,6 +6,6 @@
-
+
diff --git a/examples/JsonRpc/ReverseJsonRpcConsoleApp/ReverseJsonRpcConsoleApp.csproj b/examples/JsonRpc/ReverseJsonRpcConsoleApp/ReverseJsonRpcConsoleApp.csproj
index b417b09d0..9795845e8 100644
--- a/examples/JsonRpc/ReverseJsonRpcConsoleApp/ReverseJsonRpcConsoleApp.csproj
+++ b/examples/JsonRpc/ReverseJsonRpcConsoleApp/ReverseJsonRpcConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/Modbus/ModbusMasterConsoleApp/ModbusMasterConsoleApp.csproj b/examples/Modbus/ModbusMasterConsoleApp/ModbusMasterConsoleApp.csproj
index fba5bc472..08d501511 100644
--- a/examples/Modbus/ModbusMasterConsoleApp/ModbusMasterConsoleApp.csproj
+++ b/examples/Modbus/ModbusMasterConsoleApp/ModbusMasterConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Modbus/ModbusObjectConsoleApp/ModbusObjectConsoleApp.csproj b/examples/Modbus/ModbusObjectConsoleApp/ModbusObjectConsoleApp.csproj
index 5f353a58d..558c52dbb 100644
--- a/examples/Modbus/ModbusObjectConsoleApp/ModbusObjectConsoleApp.csproj
+++ b/examples/Modbus/ModbusObjectConsoleApp/ModbusObjectConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/Modbus/ModbusSlaveConsoleApp/ModbusSlaveConsoleApp.csproj b/examples/Modbus/ModbusSlaveConsoleApp/ModbusSlaveConsoleApp.csproj
index 5f353a58d..558c52dbb 100644
--- a/examples/Modbus/ModbusSlaveConsoleApp/ModbusSlaveConsoleApp.csproj
+++ b/examples/Modbus/ModbusSlaveConsoleApp/ModbusSlaveConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/NamedPipe/NamedPipeClientConsoleApp/NamedPipeClientConsoleApp.csproj b/examples/NamedPipe/NamedPipeClientConsoleApp/NamedPipeClientConsoleApp.csproj
index 02350ee1c..3851b83ad 100644
--- a/examples/NamedPipe/NamedPipeClientConsoleApp/NamedPipeClientConsoleApp.csproj
+++ b/examples/NamedPipe/NamedPipeClientConsoleApp/NamedPipeClientConsoleApp.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/examples/NamedPipe/NamedPipeServiceConsoleApp/NamedPipeServiceConsoleApp.csproj b/examples/NamedPipe/NamedPipeServiceConsoleApp/NamedPipeServiceConsoleApp.csproj
index ec03d6998..474f5a262 100644
--- a/examples/NamedPipe/NamedPipeServiceConsoleApp/NamedPipeServiceConsoleApp.csproj
+++ b/examples/NamedPipe/NamedPipeServiceConsoleApp/NamedPipeServiceConsoleApp.csproj
@@ -8,6 +8,6 @@
-
+
diff --git a/examples/NamedPipe/NamedPipeWebApplication/NamedPipeWebApplication.csproj b/examples/NamedPipe/NamedPipeWebApplication/NamedPipeWebApplication.csproj
index c83fa8a51..f75ee1ab1 100644
--- a/examples/NamedPipe/NamedPipeWebApplication/NamedPipeWebApplication.csproj
+++ b/examples/NamedPipe/NamedPipeWebApplication/NamedPipeWebApplication.csproj
@@ -8,8 +8,8 @@
-
-
+
+