⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jabberserizlizer.cs

📁 语音视频功能 里面实现了基本的QQ与语音对话
💻 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 + -