mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-04 08:06:36 +08:00
序列化继续改进
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Newtonsoft.Json;
|
||||
using AIStudio.Wpf.DiagramDesigner.Helpers;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
@@ -489,9 +490,24 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
return new Size(double.Parse(pieces[0]), double.Parse(pieces[1]));
|
||||
}
|
||||
|
||||
public static string SerializeDoubleNull(double? point)
|
||||
{
|
||||
return point?.ToString();
|
||||
}
|
||||
|
||||
public static double? DeserializeDoubleNull(string point)
|
||||
{
|
||||
double? value = null;
|
||||
if (Double.TryParse(point, out var result))
|
||||
{
|
||||
value = result;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static string SerializeObject(object obj, string serializableType)
|
||||
{
|
||||
if (serializableType?.ToLower() == "xml")
|
||||
if (serializableType?.ToLower() == ".xml")
|
||||
{
|
||||
XmlSerializer serializer = new XmlSerializer(obj.GetType());
|
||||
XmlWriterSettings settings = new XmlWriterSettings();
|
||||
@@ -517,7 +533,24 @@ namespace AIStudio.Wpf.DiagramDesigner
|
||||
|
||||
public static SelectableItemBase DeserializeObject(Type type, string serializableString, string serializableType)
|
||||
{
|
||||
if (serializableType?.ToLower() == "xml")
|
||||
if (serializableType?.ToLower() == ".xml")
|
||||
{
|
||||
using (StringReader sr = new StringReader(serializableString))
|
||||
{
|
||||
XmlSerializer serializer = new XmlSerializer(type);
|
||||
return serializer.Deserialize(sr) as SelectableItemBase;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return JsonConvert.DeserializeObject(serializableString, type) as SelectableItemBase;
|
||||
}
|
||||
}
|
||||
|
||||
public static SelectableItemBase DeserializeObject(string typename, string serializableString, string serializableType)
|
||||
{
|
||||
Type type = TypeHelper.GetType(typename);
|
||||
if (serializableType?.ToLower() == ".xml")
|
||||
{
|
||||
using (StringReader sr = new StringReader(serializableString))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user