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

📄 sipcheader.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Base.Sipc
{
    using System;
    using System.Collections;
    using System.Reflection;
    using System.Text;

    public class SipcHeader
    {
        private string _name;
        private ArrayList _parameters;
        private string _rawValue;
        private string _value;

        public SipcHeader(string name)
        {
            this._name = string.Empty;
            this._value = string.Empty;
            this._rawValue = string.Empty;
            this._name = name.Trim().ToUpper();
        }

        public SipcHeader(string name, string value)
        {
            this._name = string.Empty;
            this._value = string.Empty;
            this._rawValue = string.Empty;
            this._name = name.Trim().ToUpper();
            this._rawValue = value;
            this.Parse(value);
        }

        public void AddParameter(string name, string value)
        {
            this.Parameters.Add(new SipcParameter(name, value));
        }

        public virtual void Parse(string value)
        {
            if ((this._parameters != null) && (this._parameters.Count > 0))
            {
                this._parameters.Clear();
            }
            value = value.Trim();
            if (value.Length >= 1)
            {
                string[] textArray = value.Split(new char[] { ';' });
                this._value = textArray[0];
                for (int i = 1; i < textArray.Length; i++)
                {
                    string name = textArray[i].Trim();
                    if (name.Length >= 1)
                    {
                        int length = name.IndexOf('=');
                        if (length < 0)
                        {
                            this.Parameters.Add(new SipcParameter(name, string.Empty));
                        }
                        else
                        {
                            string text2 = name.Substring(0, length).Trim().ToLower();
                            this.Parameters.Add(new SipcParameter(text2, name.Substring(length + 1).Trim().Trim(new char[] { '"' })));
                        }
                    }
                }
            }
        }

        public override string ToString()
        {
            if ((this._parameters == null) || (this._parameters.Count < 1))
            {
                return string.Format("{0}: {1}", this._name, this._value);
            }
            StringBuilder builder = new StringBuilder();
            builder.AppendFormat("{0}: {1}", this._name, this._value);
            foreach (SipcParameter parameter in this._parameters)
            {
                builder.AppendFormat(";{0}", parameter.ToString());
            }
            return builder.ToString();
        }

        public SipcParameter this[string name]
        {
            get
            {
                if (this._parameters != null)
                {
                    foreach (SipcParameter parameter in this._parameters)
                    {
                        if (parameter.Name == name.ToLower())
                        {
                            return parameter;
                        }
                    }
                }
                return null;
            }
        }

        public string Name
        {
            get
            {
                return this._name;
            }
        }

        public ArrayList Parameters
        {
            get
            {
                if (this._parameters == null)
                {
                    this._parameters = new ArrayList();
                }
                return this._parameters;
            }
        }

        public string RawValue
        {
            get
            {
                return this._rawValue;
            }
        }

        public string Value
        {
            get
            {
                return this._value;
            }
            set
            {
                this._value = (value == null) ? string.Empty : value.Trim();
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -