厚积薄发,丰富的公用类库积累,助你高效进行系统开发(9)----各种常用辅助类
俗话说,一个好汉十个帮,众人拾柴火焰高等都说明一个道理,有更多的资源,更丰富的积累,都是助你走向成功,走向顶峰的推动力。
本篇的公用类库的介绍主题是程序开发中常用到的各种格式转换或者数据验证的辅助类,内容范围可能比较广泛,包括XML操作、序列化及反序列化操作、命令行解析,枚举对象操作,数据格式验证等等,不过都是不可多得、好用的辅助类。 本篇继续继续整理优化已有的共用类库,并继续发表随笔介绍公用类库的接口方法以及详细使用操作,力求给自己继续优化,积攒更丰富的公用类库资源,加深了解的同时,也给大家展现公用类库好的方面。
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(8)----非对称加密、BASE64加密、MD5等常用加密处理
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(7)-----声音播放、硬件信息、键盘模拟及钩子、鼠标模拟及钩子等设备相关
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(6)----全屏截图、图标获取、图片打印、页面预览截屏、图片复杂操作等
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(5)----热键、多线程、窗体动画冻结等窗体操作
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(4)----CSV、Excel、INI文件、独立存储等文件相关
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(3)----数据库相关操作
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(2)----常用操作
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(1)----开篇总结
1、序列化、反序列化、节点等操作类辅助类 XmlHelper。
实现效果
1)本辅助类主要是用来方便实现XML序列化、反序列化、节点等操作。
实现代码
1)辅助类提供的方法接口如下所示:
<summary>
///
构造函数
///
</summary>
///
<param name="XmlFile">
XML文件路径
</param>
public
XmlHelper(
string
XmlFile)
#region
静态方法
///
<summary>
///
二进制序列化
///
</summary>
///
<param name="path">
文件路径
</param>
///
<param name="obj">
对象实例
</param>
///
<returns></returns>
public
static
bool
Serialize(
string
path,
object
obj)
///
<summary>
///
XML序列化
///
</summary>
///
<param name="path">
文件路径
</param>
///
<param name="obj">
对象实例
</param>
///
<returns></returns>
public
static
bool
XmlSerialize(
string
path,
object
obj, Type type)
///
<summary>
///
二进制反序列化
///
</summary>
///
<param name="path">
文件路径
</param>
///
<returns></returns>
public
static
object
Deserialize(
string
path)
///
<summary>
///
XML反序列化
///
</summary>
///
<param name="path">
文件路径
</param>
///
<param name="type">
对象类型
</param>
///
<returns></returns>
public
static
object
XmlDeserialize(
string
path, Type type)
#endregion
#region
公用方法
///
<summary>
///
获取指定节点下面的XML子节点
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<returns></returns>
public
XmlNodeList Read(
string
XmlPathNode)
///
<summary>
///
读取节点属性内容
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<param name="Attrib">
节点属性
</param>
///
<returns></returns>
public
string
Read(
string
XmlPathNode,
string
Attrib)
///
<summary>
///
获取元素节点对象
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<param name="elementName">
元素节点名称
</param>
///
<returns></returns>
public
XmlElement GetElement(
string
XmlPathNode,
string
elementName)
///
<summary>
///
获取元素节点的值
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<param name="elementName">
元素节点名称
</param>
///
<returns></returns>
public
string
GetElementData(
string
XmlPathNode,
string
elementName)
///
<summary>
///
获取节点下的DataSet
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<returns></returns>
public
DataSet GetData(
string
XmlPathNode)
///
<summary>
///
替换某节点的内容
///
</summary>
///
<param name="XmlPathNode">
XML节点
</param>
///
<param name="Content">
节点内容
</param>
public
void
Replace(
string
XmlPathNode,
string
Content)
///
<summary>
///
删除节点
///
</summary>
///
<param name="Node">
节点
</param>
public
void
Delete(
string
Node)
///
<summary>
///
插入一节点和此节点的一子节点
///
</summary>
///
<param name="MainNode"></param>
///
<param name="ChildNode"></param>
///
<param name="Element"></param>
///
<param name="Content"></param>
public
void
InsertNode(
string
MainNode,
string
ChildNode,
string
Element,
string
Content)
///
<summary>
///
插入一个节点带一个属性
///
</summary>
///
<param name="MainNode">
指定的XML节点
</param>
///
<param name="Element">
元素名称
</param>
///
<param name="Attrib">
属性名称
</param>
///
<param name="AttribContent">
属性值
</param>
///
<param name="Content">
内容
</param>
public
void
InsertElement(
string
MainNode,
string
Element,
string
Attrib,
string
AttribContent,
string
Content)
///
<summary>
///
插入XML元素
///
</summary>
///
<param name="MainNode">
指定的XML节点
</param>
///
<param name="Element">
元素名称
</param>
///
<param name="Content">
内容
</param>
public
void
InsertElement(
string
MainNode,
string
Element,
string
Content)
///
<summary>
///
保存XML文档
///
</summary>
public
void
Save()
2)辅助类XmlHelper的使用例子代码如下所示
SearchInfo searchInfo =
new
SearchInfo();
"
TestFeild
"
;
searchInfo.FieldValue =
"
TestValue
"
;
string
file =
@"
C:\searchInfo.xml
"
;
XmlHelper.XmlSerialize(file, searchInfo,
typeof
(SearchInfo));
SearchInfo info2FromXml = XmlHelper.XmlDeserialize(file,
typeof
(SearchInfo))
as
SearchInfo;
Console.WriteLine(
"
{0} : {0}
"
, info2FromXml.FieldName, info2FromXml.FieldValue);
XML序列化文件如下所示,并能通过该文件反序列化到对象实例中。
3)辅助类XmlHelper操作节点的例子代码如下所示。
bookstore.xml文件内容
/*
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
*/
file =
@"
c:\bookstore.xml
"
;
XmlHelper helper =
new
XmlHelper(file);
string
value = helper.Read(
"
bookstore/book
"
,
"
genre
"
);
Console.WriteLine(value);
//
fantasy
value = helper.Read(
"
bookstore/book
"
,
"
ISBN
"
);
Console.WriteLine(value);
//
2-3631-4
value = helper.GetElementData(
"
bookstore/book
"
,
"
title
"
);
Console.WriteLine(value);
//
Oberon's Legacy
XmlElement element = helper.GetElement(
"
bookstore/book
"
,
"
title
"
);
element.InnerText =
"
伍华聪
"
;
DataSet ds = helper.GetData(
"
bookstore/book
"
);
ds.WriteXml(
@"
C:\ds.xml
"
);
2、序列化和反序列化操作辅助类 Serializer。
实现效果
1)本辅助类主要是用来方便实现序列化合反序列化操作。
实现代码
1)辅助类提供的方法接口如下所示:
各种格式的序列化操作
///
<summary>
///
序列化对象到二进制字节数组
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<returns></returns>
public
static
byte
[] SerializeToBinary(
object
obj)
///
<summary>
///
序列化对象到指定的文件中
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
///
<param name="mode">
文件打开方式
</param>
public
static
void
SerializeToBinary(
object
obj,
string
path, FileMode mode)
///
<summary>
///
序列号对象到文件中,创建一个新文件
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
public
static
void
SerializeToBinary(
object
obj,
string
path)
///
<summary>
///
序列化对象到Soap字符串中
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<returns></returns>
public
static
string
SerializeToSoap(
object
obj)
///
<summary>
///
序列化对象到Soap字符串中,并保存到文件
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
///
<param name="mode">
文件打开方式
</param>
public
static
void
SerializeToSoap(
object
obj,
string
path, FileMode mode)
///
<summary>
///
序列化对象到Soap字符串中,并保存到文件
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
public
static
void
SerializeToSoap(
object
obj,
string
path)
///
<summary>
///
序列化对象到XML字符串中
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<returns></returns>
public
static
string
SerializeToXml(
object
obj)
///
<summary>
///
序列化对象到XML字符串,并保存到文件中
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
///
<param name="mode">
文件打开方式
</param>
public
static
void
SerializeToXmlFile(
object
obj,
string
path, FileMode mode)
///
<summary>
///
序列化对象到XML字符串,并保存到文件中
///
</summary>
///
<param name="obj">
待序列化的对象
</param>
///
<param name="path">
文件路径
</param>
public
static
void
SerializeToXmlFile(
object
obj,
string
path)
#endregion
///
<summary>
///
从指定的文件中反序列化到具体的对象
///
</summary>
///
<param name="type">
对象的类型
</param>
///
<param name="path">
文件路径
</param>
///
<returns></returns>
public
static
object
DeserializeFromXmlFile(Type type,
string
path)
///
<summary>
///
从指定的XML字符串中反序列化到具体的对象
///
</summary>
///
<param name="type">
对象的类型
</param>
///
<param name="s">
XML字符串
</param>
///
<returns></returns>
public
static
object
DeserializeFromXml(Type type,
string
s)
///
<summary>
///
从指定的Soap协议字符串中反序列化到具体的对象
///
</summary>
///
<param name="type">
对象的类型
</param>
///
<param name="s">
Soap协议字符串
</param>
///
<returns></returns>
public
static
object
DeserializeFromSoap(Type type,
string
s)
///
<summary>
///
从指定的二进制字节数组中反序列化到具体的对象
///
</summary>
///
<param name="type">
对象的类型
</param>
///
<param name="bytes">
二进制字节数组
</param>
///
<returns></returns>
public
static
object
DeserializeFromBinary(Type type,
byte
[] bytes)
///
<summary>
///
从指定的文件总,以二进制字节数组中反序列化到具体的对象
///
</summary>
///
<param name="type">
对象的类型
</param>
///
<param name="bytes">
二进制字节数组存储的文件
</param>
///
<returns></returns>
public
static
object
DeserializeFromBinary(Type type,
string
path)
///
<summary>
///
获取对象的字节数组大小
///
</summary>
///
<param name="o">
对象
</param>
///
<returns></returns>
public
static
long
GetByteSize(
object
o)
///
<summary>
///
克隆一个对象
///
</summary>
///
<param name="o">
对象
</param>
///
<returns></returns>
public
static
object
Clone(
object
o)
2)辅助类的使用例子代码如下所示
public
class
TestSerializeUtil
public
static
string
Execute()
{
string
result =
string
.Empty;
result +=
"
使用SerializeUtil序列化及反序列化的辅助类:
"
+
"
\r\n
"
;
Person person =
new
Person();
person.Name =
"
wuhuacong
"
;
person.Age =
20
;
byte
[] bytes = SerializeUtil.SerializeToBinary(person);
Person person2 = SerializeUtil.DeserializeFromBinary(
typeof
(Person), bytes)
as
Person;
result += ReflectionUtil.GetProperties(person2) +
"
\r\n
"
;
string
xml = SerializeUtil.SerializeToXml(person);
Person person3 = SerializeUtil.DeserializeFromXml(
typeof
(Person), xml)
as
Person;
result +=
"
person3:\r\n
"
+ ReflectionUtil.GetProperties(person3) +
"
\r\n
"
;
result +=
"
SerializeUtil.GetByteSize(person3):
"
+ SerializeUtil.GetByteSize(person3) +
"
\r\n
"
;
Person person4 = SerializeUtil.Clone(person3)
as
Person;
result +=
"
person4:\r\n
"
+ ReflectionUtil.GetProperties(person4) +
"
\r\n
"
;
result +=
"
Util.AreObjectsEqual(person3, person4):
"
+ Util.AreObjectsEqual(person3, person4)+
"
\r\n
"
;
SerializeUtil.SerializeToXmlFile(person3, Util.CurrentPath +
"
person3.xml
"
, FileMode.Create);
Person person5 = SerializeUtil.DeserializeFromXmlFile(
typeof
(Person), Util.CurrentPath +
"
person3.xml
"
)
as
Person;
result +=
"
person5:\r\n
"
+ ReflectionUtil.GetProperties(person5) +
"
\r\n\r\n
"
;
result += SerializeUtil.ReadFile(Util.CurrentPath +
"
person3.xml
"
) +
"
\r\n\r\n
"
;
result += SerializeUtil.ReadFileFromEmbedded(
"
TestUtilities.EmbedFile.xml
"
) +
"
\r\n\r\n
"
;
return
result;
}
}
3、实现命令行解析的常用操作的辅助类 CommandLine。
实现效果
1)本辅助类主要是用来方便实现命令行解析的常用操作,命令行的解析在很多情况下是非常必要的,如自动并带参数启动的操作等。
实现代码
1)辅助类提供的方法接口如下所示:
<summary>
///
解析传递的命令行参数,并返回结果到一个CommandArgs对象。
///
假设命令行格式: CMD [param] [[-|--|\]<arg>[[=]<value>]] [param]
///
例如:cmd first -o outfile.txt --compile second \errors=errors.txt third fourth --test = "the value" fifth
///
</summary>
///
<param name="args">
命令行参数数组
</param>
///
<returns>
包含转换后的命令行对象CommandArgs
</returns>
public
static
CommandArgs Parse(
string
[] args)
<summary>
///
包含解析的命令行参数。这包括两个列表,一个是参数对,一个是独立的参数。
///
</summary>
public
class
CommandArgs
{
///
<summary>
///
返回参数/参数值的键值字典
///
</summary>
public
Dictionary<
string
,
string
> ArgPairs
///
<summary>
///
返回独立的参数列表
///
</summary>
public
List<
string
> Params
}
2)辅助类的使用例子代码如下所示
<summary>
///
应用程序的主入口点。
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
//
参数字符串:first -o outfile.txt --compile second \errors=errors.txt third fourth --test = "the value" fifth
CommandArgs objArgs = CommandLine.Parse(args);
//
键值参数列表,得到输出
//
o:outfile.txt
//
compile:second
//
errors:errors.txt
//
test:the value
foreach
(
string
str
in
objArgs.ArgPairs.Keys)
{
Debug.WriteLine(
string
.Format(
"
{0}:{1}
"
, str, objArgs.ArgPairs[str]));
}
//
非键值参数列表:得到first third fourth fifth 共四个字符串
foreach
(
string
str
in
objArgs.Params)
{
Debug.WriteLine(str);
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
false
);
Application.Run(
new
Form1());
}
3)输出结果如下所示
:outfile
.txt
compile
:second
errors
:errors
.txt
test
:the
value
first
third
fourth
fifth
4、枚举操作辅助类 EnumHelper。
实现效果
1)本辅助类主要是用来方便实现枚举的各种相关操作。
实现代码
1)辅助类提供的方法接口如下所示:
<summary>
///
通过字符串获取枚举成员实例
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
///
<param name="member">
枚举成员的常量名或常量值,
///
范例:Enum1枚举有两个成员A=0,B=1,则传入"A"或"0"获取 Enum1.A 枚举类型
</param>
public
static
T GetInstance<T>(
string
member)
///
<summary>
///
获取枚举成员名称和成员值的键值对集合
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
public
static
Dictionary<
string
,
object
> GetMemberKeyValue<T>()
///
<summary>
///
获取枚举所有成员名称
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
public
static
string
[] GetMemberNames<T>()
///
<summary>
///
获取枚举成员的名称
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
///
<param name="member">
枚举成员实例或成员值,
///
范例:Enum1枚举有两个成员A=0,B=1,则传入Enum1.A或0,获取成员名称"A"
</param>
public
static
string
GetMemberName<T>(
object
member)
///
<summary>
///
获取枚举所有成员值
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
public
static
Array GetMemberValues<T>()
///
<summary>
///
获取枚举成员的值
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
///
<param name="memberName">
枚举成员的常量名,
///
范例:Enum1枚举有两个成员A=0,B=1,则传入"A"获取0
</param>
public
static
object
GetMemberValue<T>(
string
memberName)
///
<summary>
///
获取枚举的基础类型
///
</summary>
///
<param name="enumType">
枚举类型
</param>
public
static
Type GetUnderlyingType(Type enumType)
///
<summary>
///
检测枚举是否包含指定成员
///
</summary>
///
<typeparam name="T">
枚举名,比如Enum1
</typeparam>
///
<param name="member">
枚举成员名或成员值
</param>
public
static
bool
IsDefined<T>(
string
member)
///
<summary>
///
返回指定枚举类型的指定值的描述
///
</summary>
///
<param name="t">
枚举类型
</param>
///
<param name="v">
枚举值
</param>
///
<returns></returns>
public
static
string
GetDescription(System.Type t,
object
v)
///
<summary>
///
返回指定枚举类型的指定值的名称
///
</summary>
///
<param name="t">
指定枚举类型
</param>
///
<param name="v">
指定值
</param>
///
<returns></returns>
private
static
string
GetName(System.Type t,
object
v)
///
<summary>
///
获取枚举类型的对应序号及描述名称
///
</summary>
///
<param name="t">
枚举类型
</param>
///
<returns></returns>
public
static
SortedList GetStatus(System.Type t)
2)辅助类的使用例子代码如下所示
void
btnTestEnum_Click(
object
sender, EventArgs e)
{
string
desc = EnumHelper.GetDescription(
typeof
(SqlOperator), SqlOperator.Like);
MessageUtil.ShowTips(
string
.Format(
"
SqlOperator.Like:{0}
"
, desc));
SortedList list = EnumHelper.GetStatus(
typeof
(SqlOperator));
StringBuilder sb =
new
StringBuilder();
foreach
(
int
key
in
list.Keys)
{
sb.AppendFormat(
"
key:{0} Value:{1} \r\n
"
, key, list[key]);
}
MessageUtil.ShowTips(sb.ToString());
}
5、身份证相关操作辅助类 IDCardHelper。
实现效果
1)本辅助类主要是用来方便实现身份证的各种相关操作,验证身份证、15到18位身份证号码转换、提取省份、县市、地区区划、出生年月及判断男女等操作。
实现代码
1)辅助类提供的方法接口如下所示:
<summary>
///
绑定身份证类别的名称
///
</summary>
///
<param name="cb">
ComboBox控件
</param>
public
static
void
InitIdType(ComboBox cb)
///
<summary>
///
获取身份证类别的名称(居民身份证、军官证、士兵证、军官离退休证、境外人员身份证明、外交人员身份证明)
///
</summary>
///
<returns></returns>
public
static
DataTable CreateIDType()
///
<summary>
///
验证身份证结果
///
</summary>
///
<param name="idcard">
身份证号码
</param>
///
<returns>
正确的时候返回string.Empty
</returns>
public
static
string
Validate(
string
idcard)
///
<summary>
///
15位身份证明号码转化成18位用来编码
///
</summary>
///
<param name="idcard">
15位的身份证号码
</param>
///
<returns></returns>
public
static
string
IdCard15To18(
string
idcard)
///
<summary>
///
获取身份证对应省份的区划
///
</summary>
///
<param name="id">
身份证
</param>
///
<returns>
头两位+4个0
</returns>
public
static
string
GetProvince(
string
id)
///
<summary>
///
获取身份证对应县市的区划
///
</summary>
///
<param name="id">
身份证
</param>
///
<returns>
头4位+2个0
</returns>
public
static
string
GetCity(
string
id)
///
<summary>
///
获取身份证对应地区的区划
///
</summary>
///
<param name="id">
身份证
</param>
///
<returns>
头6位
</returns>
public
static
string
GetArea(
string
id)
///
<summary>
///
根据身份证判断是否男女
///
</summary>
///
<param name="id">
身份证号码
</param>
///
<returns>
返回"男"或者"女"
</returns>
public
static
string
GetSexName(
string
id)
///
<summary>
///
根据身份证获取出生年月
///
</summary>
///
<param name="id">
身份证号码
</param>
///
<returns>
出生年月
</returns>
public
static
DateTime GetBirthday(
string
id)
2)辅助类的使用例子代码如下所示
6、各种输入格式验证辅助类 ValidateUtil。
实现效果
1)本辅助类主要是用来方便实现各种输入格式验证操作。
实现代码
1)辅助类提供的方法接口如下所示:
用户名密码格式
///
<summary>
///
返回字符串真实长度, 1个汉字长度为2
///
</summary>
///
<returns>
字符长度
</returns>
public
static
int
GetStringLength(
string
stringValue)
///
<summary>
///
检测用户名格式是否有效
///
</summary>
///
<param name="userName">
用户名
</param>
///
<returns></returns>
public
static
bool
IsValidUserName(
string
userName)
///
<summary>
///
密码有效性
///
</summary>
///
<param name="password">
密码字符串
</param>
///
<returns></returns>
public
static
bool
IsValidPassword(
string
password)
#endregion
#region
数字字符串检查
///
<summary>
///
int有效性
///
</summary>
static
public
bool
IsValidInt(
string
val)
///
<summary>
///
是否数字字符串
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsNumeric(
string
inputData)
///
<summary>
///
是否数字字符串
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsNumber(
string
inputData)
///
<summary>
///
是否数字字符串 可带正负号
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsNumberSign(
string
inputData)
///
<summary>
///
是否是浮点数
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsDecimal(
string
inputData)
///
<summary>
///
是否是浮点数 可带正负号
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsDecimalSign(
string
inputData)
#endregion
#region
中文检测
///
<summary>
///
检测是否有中文字符
///
</summary>
public
static
bool
IsHasCHZN(
string
inputData)
///
<summary>
///
检测含有中文字符串的实际长度
///
</summary>
///
<param name="str">
字符串
</param>
public
static
int
GetCHZNLength(
string
inputData)
#endregion
#region
常用格式
///
<summary>
///
验证身份证是否合法 15 和 18位两种
///
</summary>
///
<param name="idCard">
要验证的身份证
</param>
public
static
bool
IsIdCard(
string
idCard)
///
<summary>
///
是否是邮件地址
///
</summary>
///
<param name="inputData">
输入字符串
</param>
///
<returns></returns>
public
static
bool
IsEmail(
string
inputData)
///
<summary>
///
邮编有效性
///
</summary>
public
static
bool
IsValidZip(
string
zip)
///
<summary>
///
固定电话有效性
///
</summary>
public
static
bool
IsValidPhone(
string
phone)
///
<summary>
///
手机有效性
///
</summary>
public
static
bool
IsValidMobile(
string
mobile)
///
<summary>
///
电话有效性(固话和手机 )
///
</summary>
public
static
bool
IsValidPhoneAndMobile(
string
number)
///
<summary>
///
Url有效性
///
</summary>
static
public
bool
IsValidURL(
string
url)
///
<summary>
///
IP有效性
///
</summary>
public
static
bool
IsValidIP(
string
ip)
///
<summary>
///
domain 有效性
///
</summary>
///
<param name="host">
域名
</param>
///
<returns></returns>
public
static
bool
IsValidDomain(
string
host)
///
<summary>
///
判断是否为base64字符串
///
</summary>
public
static
bool
IsBase64String(
string
str)
///
<summary>
///
验证字符串是否是GUID
///
</summary>
///
<param name="guid">
字符串
</param>
///
<returns></returns>
public
static
bool
IsGuid(
string
guid)
#endregion
#region
日期检查
///
<summary>
///
判断输入的字符是否为日期
///
</summary>
public
static
bool
IsDate(
string
strValue)
///
<summary>
///
判断输入的字符是否为日期,如2004-07-12 14:25|||1900-01-01 00:00|||9999-12-31 23:59
///
</summary>
public
static
bool
IsDateHourMinute(
string
strValue)
#endregion
#region
其他
///
<summary>
///
检查字符串最大长度,返回指定长度的串
///
</summary>
///
<param name="sqlInput">
输入字符串
</param>
///
<param name="maxLength">
最大长度
</param>
///
<returns></returns>
public
static
string
CheckMathLength(
string
inputData,
int
maxLength)
///
<summary>
///
转换成 HTML code
///
</summary>
public
static
string
Encode(
string
str)
///
<summary>
///
解析html成 普通文本
///
</summary>
public
static
string
Decode(
string
str)
2)辅助类的使用例子代码如下所示
[] qunList = lineString.Split(
new
char
[] {
'
,
'
,
'
;
'
,
'
'
});
foreach
(
string
qunNumber
in
qunList)
{
if
(!
string
.IsNullOrEmpty(qunNumber) && ValidateUtil.IsNumber(qunNumber))
{
#region
对每个号码进行查询
if
(!QunDict.ContainsKey(qunNumber))
{
this
.lstItems.Invoke(
new
MethodInvoker(
delegate
()
{
this
.lstItems.Items.Add(qunNumber);
this
.lstItems.Refresh();
}));
QunDict.Add(qunNumber, qunNumber);
}
else
{
skipCount++;
}
#endregion
}
}
3)辅助类使用例子代码2如下所示
src = CRegex.GetImgSrc(img);
bool
isurl = ValidateUtil.IsValidURL(src);
if
(isurl)
{
continue
;
}
http://www.iqidi.com/download/commonshelp.rar
最新公用类库DLL+XML注释文件下载地址是:
https://files.cnblogs.com/wuhuacong/WHC.OrderWater.Commons.rar