|
@@ -65,6 +65,58 @@ namespace Vit.Core.Module.Serialization
|
|
|
|
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
+ #region (x.1)object <--> String
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// T也可为值类型(例如 int?、bool)
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
|
+ /// <param name="value"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static string Serialize<T>(T value)
|
|
|
|
+ {
|
|
|
|
+ return Instance.SerializeToString<T>(value);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// T也可为值类型(例如 int?、bool)
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="value"></param>
|
|
|
|
+ /// <param name="type"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static string Serialize(object value, Type type)
|
|
|
|
+ {
|
|
|
|
+ return Instance.SerializeToString(value, type);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 使用Newtonsoft反序列化。T也可为值类型(例如 int?、bool)
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="value"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static T Deserialize<T>(string value)
|
|
|
|
+ {
|
|
|
|
+ return Instance.DeserializeFromString<T>(value);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 使用Newtonsoft反序列化。T也可为值类型(例如 int?、bool)
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="value"></param>
|
|
|
|
+ /// <param name="type"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static object Deserialize(string value, Type type)
|
|
|
|
+ {
|
|
|
|
+ return Instance.DeserializeFromString(value, type);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
|
|
|
|
|
|
#region (x.2)object <--> bytes
|
|
#region (x.2)object <--> bytes
|
|
@@ -117,6 +169,30 @@ namespace Vit.Core.Module.Serialization
|
|
return Instance.DeserializeFromBytes(bytes, type);
|
|
return Instance.DeserializeFromBytes(bytes, type);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// type 可以为 byte[]、string、 object 、struct
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <typeparam name="T"></typeparam>
|
|
|
|
+ /// <param name="bytes"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static T Deserialize<T>(byte[] bytes)
|
|
|
|
+ {
|
|
|
|
+ return Instance.DeserializeFromBytes<T>(bytes);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// type 可以为 byte[]、string、 object 、struct
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="bytes"></param>
|
|
|
|
+ /// <param name="type"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
|
|
+ public static object Deserialize(byte[] bytes, Type type)
|
|
|
|
+ {
|
|
|
|
+ return Instance.DeserializeFromBytes(bytes, type);
|
|
|
|
+ }
|
|
|
|
+
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
@@ -133,7 +209,6 @@ namespace Vit.Core.Module.Serialization
|
|
|
|
|
|
#region (x.4)object <--> ArraySegmentByte
|
|
#region (x.4)object <--> ArraySegmentByte
|
|
|
|
|
|
-
|
|
|
|
/// <summary>
|
|
/// <summary>
|
|
///
|
|
///
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -146,8 +221,6 @@ namespace Vit.Core.Module.Serialization
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public static T DeserializeFromArraySegmentByte<T>(ArraySegment<byte> bytes)
|
|
public static T DeserializeFromArraySegmentByte<T>(ArraySegment<byte> bytes)
|
|
{
|
|
{
|