序列化调整中

This commit is contained in:
艾竹
2023-01-24 23:10:57 +08:00
parent 66d3a6685b
commit a5005ac083
47 changed files with 387 additions and 333 deletions

View File

@@ -3,11 +3,13 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Xml;
using System.Xml.Serialization;
namespace AIStudio.Wpf.DiagramDesigner
@@ -73,8 +75,7 @@ namespace AIStudio.Wpf.DiagramDesigner
public FontItem FontItem
{
get; set;
}
}
}
public class ColorItem : IColorViewModel
@@ -487,8 +488,49 @@ namespace AIStudio.Wpf.DiagramDesigner
string[] pieces = size.Split(new char[] { ',' });
return new Size(double.Parse(pieces[0]), double.Parse(pieces[1]));
}
}
public static string SerializeObject(object obj, string serializableType)
{
if (serializableType?.ToLower() == "xml")
{
XmlSerializer serializer = new XmlSerializer(obj.GetType());
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = new UnicodeEncoding(false, false); // no BOM in a .NET string
settings.Indent = true;
settings.OmitXmlDeclaration = true;
using (StringWriter textWriter = new StringWriter())
{
using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, settings))
{
serializer.Serialize(xmlWriter, obj);
}
return textWriter.ToString(); //This is the output as a string
}
}
else
{
return JsonConvert.SerializeObject(obj);
}
}
public static SelectableItemBase DeserializeObject(Type type, string serializableString, string serializableType)
{
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 struct XmlFont
{
@@ -655,6 +697,8 @@ namespace AIStudio.Wpf.DiagramDesigner
{
get; set;
}
}
}