📄 sipcheader.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 + -