📄 jabberserizlizer.cs
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Xml;
using System.IO;
using System.Xml.Serialization;
using System.Reflection;
using System.Diagnostics;
using gowk.core.packets;
namespace gowk.core.serizlize
{
public class JabberSerizlizer
{
private static JabberSerizlizer _JabberSerizlizer=new JabberSerizlizer();
SerizlizerHellperCollection _SerizlizerHellpers;
internal SerizlizerHellperCollection SerizlizerHellpers
{
get{return this._SerizlizerHellpers;}
}
private JabberSerizlizer()
{
_SerizlizerHellpers=new SerizlizerHellperCollection();
_SerizlizerHellpers.Add(new gowk.core.serizlize.VCardIQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.MessageSerizlizerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.AuthIQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.RegisterIQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.RosterIQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.SearchIQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.IQSerializerHelper());
_SerizlizerHellpers.Add(new gowk.core.serizlize.PresenceSerializerHelper());
}
public static JabberSerizlizer Instance
{
get{return _JabberSerizlizer;}
}
public Packet Deserialize(XmlElement xe)
{
SerizlizerHellper helper=this.SerizlizerHellpers.GetHelper(xe);
if(helper==null)
{
throw new System.Exception();
}
StringReader sr=new StringReader(xe.OuterXml);
XmlSerializer xs=new XmlSerializer(helper.Target,helper.GetOverrides(true));
xs.UnknownElement+=new XmlElementEventHandler(helper.OnUnknownElement);
// xs.UnreferencedObject+=new UnreferencedObjectEventHandler(helper.OnUnreferencedObject);
object o=xs.Deserialize(sr);
sr.Close();
return (Packet)o;
}
public string Serialize(Packet p)
{
Debug.Assert(p!=null);
SerizlizerHellper helper=this.SerizlizerHellpers.GetHelper(p);
MemoryStream ms=new MemoryStream();
XmlSerializer xs=new XmlSerializer(helper.Target,helper.GetOverrides(true));
try
{
xs.Serialize(ms,p);
}
catch(System.Exception ex)
{
Debug.Assert(false,ex.Message);
throw;
}
ms.Position=0;
StreamReader sr=new StreamReader(ms);
string s=sr.ReadToEnd();
sr.Close();
ms.Close();
s=s.Replace("<?xml version=\"1.0\"?>","");
s=s.Replace(" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"","");
s=s.Replace(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"","");
return s;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -