pascalabcnet/VisualPascalABCNETLinux/SSYY/SampleDesignerSerializationService.cs
Mikhalkovich Stanislav 3072383106 Для Linux-версии исправлен DockContent, редактор (показ всплывающего окна)
Сделан новый проект VisualPABCLinux
И пришлось склонировать PluginsSupport, поскольку он вносит зависимость по редактору
Компоненты WeifenLuo для Linux надо после перекомпиляции скопировать в Libraries - подшить их к основному проекту просто не получилось
2022-06-30 09:47:11 +03:00

49 lines
1.4 KiB
C#

using System;
using System.Xml;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
namespace SampleDesignerHost
{
/// <summary>
/// Implementation de IDesignerSerializationService
/// </summary>
public class SampleDesignerSerializationService : IDesignerSerializationService
{
private IDesignerHost host;
public SampleDesignerSerializationService(IDesignerHost host)
{
this.host = host;
}
public object Serialize(ICollection objects)
{
XmlDocument xDoc = new XmlDocument();
xDoc.AppendChild(xDoc.CreateElement("COPY"));
object[] list = new object[objects.Count];
objects.CopyTo(list, 0);
((SampleDesignerHost)host).WriteComponentCollection(xDoc, list, xDoc.DocumentElement);
return xDoc.OuterXml;
}
public ICollection Deserialize(object serializationData)
{
ArrayList errors = new ArrayList();
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(serializationData.ToString());
ICollection objects = ((SampleDesignerHost)host).CreateComponents(xDoc, errors);
foreach (string s in errors)
{
System.Diagnostics.Debug.WriteLine(s);
}
return objects;
}
}
}