mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-03-03 00:00:57 +08:00
序列化调整中
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user