All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
使用,PHP,快速生成,Flash,动画_php资料_编程技术
GridView绑定模板格式化日期总结_[Asp.Net教程]
数据库索引应用(ms-sql)_mssql学习_编程技术
Ajax核心:XMLHTTP组件相关技术资料_[AJAX教程]_0
HTML语言剖析(十二)多媒体标记_[Html教程]
利用ASP.NET,2.0的客户端回调功能制作下拉框无限级联动_[Asp.Net教程]
SQL的排序,分组,统计常用语句_[SQL Server教程]
通过SQLSERVER重启SQLSERVER服务和计算机_[SQL,Server教程]
asp.net2.0内置Application对象的事件
详细讲解动态网页制作技术PHP中的函数应用_[PHP教程]
Reading number is top 10 pictures
Flow chart of breast implants
Athena chu perspective cheongsam shine with New York
Steal to eat bacon bird
The real super beauty1
Very beautiful interior decoration
奇趣的世界记录3
NeedWallpaper4
Take you to walk into the most true north Korea rural3
人物写真-谢楠
Take you to walk into the most true north Korea rural4
Download software ranking
Unix video tutorial20
C++编程教程第三版
jBuilder2006
I for your crazy
Tram sex maniac 2 (H) rar bag5
Unix video tutorial5
Unix video tutorial12
The Bermuda triangle2
XML+Web+Service开发教程
尖东毒玫瑰A
归海一刀 published in(发表于) 2014/1/30 0:50:43 Edit(编辑)
.NET开发不可不知、不可不用的辅助类(一)_[Asp.Net教程]

.NET开发不可不知、不可不用的辅助类(一)_[Asp.Net教程]

.NET开发不可不知、不可不用的辅助类(一)_[Asp.Net教程]

1. 用于获取或设置Web.config/*.exe.config中节点数据的辅助类
/**////


/// 用于获取或设置Web.config/*.exe.config中节点数据的辅助类
///

public sealed class AppConfig
{
private string filePath;


/**////


/// 从当前目录中按顺序检索Web.Config和*.App.Config文件。
/// 如果找到一个,则使用它作为配置文件;否则会抛出一个ArgumentNullException异常。
///

public AppConfig()
{
string webconfig = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web.Config");
string appConfig = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile.Replace(".vshost", "");


if (File.Exists(webconfig))
{
filePath = webconfig;
}
else if (File.Exists(appConfig))
{
filePath = appConfig;
}
else
{
throw new ArgumentNullException("没有找到Web.Config文件或者应用程序配置文件, 请指定配置文件");
}
}



/**////


/// 用户指定具体的配置文件路径
///

/// 配置文件路径(绝对路径)
public AppConfig(string configFilePath)
{
filePath = configFilePath;
}


/**////


/// 设置程序的config文件
///

/// 键名
/// 键值
public void AppConfigSet(string keyName, string keyValue)
{
//由于存在多个Add键值,使得访问appSetting的操作不成功,故注释下面语句,改用新的方式
/**//*
string xpath = "//add[@key='" + keyName + "']";
XmlDocument document = new XmlDocument();
document.Load(filePath);


XmlNode node = document.SelectSingleNode(xpath);
node.Attributes["value"].Value = keyValue;
document.Save(filePath);
*/


XmlDocument document = new XmlDocument();
document.Load(filePath);


XmlNodeList nodes = document.GetElementsByTagName("add");
for (int i = 0; i < nodes.Count; i++)
{
//获得将当前元素的key属性
XmlAttribute attribute = nodes[i].Attributes["key"];
//根据元素的第一个属性来判断当前的元素是不是目标元素
if (attribute != null && (attribute.Value == keyName))
{
attribute = nodes[i].Attributes["value"];
//对目标元素中的第二个属性赋值
if (attribute != null)
{
attribute.Value = keyValue;
break;
}
}
}
document.Save(filePath);
}


/**////


/// 读取程序的config文件的键值。
/// 如果键名不存在,返回空
///

/// 键名
///
public string AppConfigGet(string keyName)
{
string strReturn = string.Empty;
try
{
XmlDocument document = new XmlDocument();
document.Load(filePath);


XmlNodeList nodes = document.GetElementsByTagName("add");
for (int i = 0; i < nodes.Count; i++)
{
//获得将当前元素的key属性
XmlAttribute attribute = nodes[i].Attributes["key"];
//根据元素的第一个属性来判断当前的元素是不是目标元素
if (attribute != null && (attribute.Value == keyName))
{
attribute = nodes[i].Attributes["value"];
if (attribute != null)
{
strReturn = attribute.Value;
break;
}
}
}
}
catch
{
;
}


return strReturn;
}


/**////


/// 获取指定键名中的子项的值
///

/// 键名
/// 以分号(;)为分隔符的子项名称
/// 对应子项名称的值(即是=号后面的值)
public string GetSubValue(string keyName, string subKeyName)
{
string connectionString = AppConfigGet(keyName).ToLower();
string[] item = connectionString.Split(new char[] {';'});


for (int i = 0; i < item.Length; i++)
{
string itemValue = item[i].ToLower();
if (itemValue.IndexOf(subKeyName.ToLower()) >= 0) //如果含有指定的关键字
{
int startIndex = item[i].IndexOf("="); //等号开始的位置
return item[i].Substring(startIndex + 1); //获取等号后面的值即为Value
}
}
return string.Empty;
}
}
AppConfig测试代码:
public class TestAppConfig
{
public static string Execute()
{
string result = string.Empty;


//读取Web.Config的
AppConfig config = new AppConfig();
result += "读取Web.Config中的配置信息:" + "\r\n";
result += config.AppName + "\r\n";
result += config.AppConfigGet("WebConfig") + "\r\n";


config.AppConfigSet("WebConfig", DateTime.Now.ToString("hh:mm:ss"));
result += config.AppConfigGet("WebConfig") + "\r\n\r\n";



//读取*.App.Config的
config = new AppConfig("TestUtilities.exe.config");
result += "读取TestUtilities.exe.config中的配置信息:" + "\r\n";
result += config.AppName + "\r\n";
result += config.AppConfigGet("AppConfig") + "\r\n";


config.AppConfigSet("AppConfig", DateTime.Now.ToString("hh:mm:ss"));
result += config.AppConfigGet("AppConfig") + "\r\n\r\n";



return result;
}
}


2. 反射操作辅助类ReflectionUtil
/**////


/// 反射操作辅助类
///

public sealed class ReflectionUtil
{
private ReflectionUtil()
{
}


private static BindingFlags bindingFlags = BindingFlags.DeclaredOnly | BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;


/**////


/// 执行某个方法
///

/// 指定的对象
/// 对象方法名称
/// 参数
///
public static object InvokeMethod(object obj, string methodName, object[] args)
{
object objResult = null;
Type type = obj.GetType();
objResult = type.InvokeMember(methodName, bindingFlags | BindingFlags.InvokeMethod, null, obj, args);
return objResult;
}


/**////


/// 设置对象字段的值
///

public static void SetField(object obj, string name, object value)
{
FieldInfo fieldInfo = obj.GetType().GetField(name, bindingFlags);
object objValue = Convert.ChangeType(value, fieldInfo.FieldType);
fieldInfo.SetValue(objValue, value);
}


/**////


/// 获取对象字段的值
///

public static object GetField(object obj, string name)
{
FieldInfo fieldInfo = obj.GetType().GetField(name, bindingFlags);
return fieldInfo.GetValue(obj);
}


/**////


/// 设置对象属性的值
///

public static void SetProperty(object obj, string name, object value)
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(name, bindingFlags);
object objValue = Convert.ChangeType(value, propertyInfo.PropertyType);
propertyInfo.SetValue(obj, objValue, null);
}


/**////


/// 获取对象属性的值
///

public static object GetProperty(object obj, string name)
{
PropertyInfo propertyInfo = obj.GetType().GetProperty(name, bindingFlags);
return propertyInfo.GetValue(obj, null);
}


/**////


/// 获取对象属性信息(组装成字符串输出)
///

public static string GetProperties(object obj)
{
StringBuilder strBuilder = new StringBuilder();
PropertyInfo[] propertyInfos = obj.GetType().GetProperties(bindingFlags);


foreach (PropertyInfo property in propertyInfos)
{
strBuilder.Append(property.Name);
strBuilder.Append(":");
strBuilder.Append(property.GetValue(obj, null));
strBuilder.Append("\r\n");
}


return strBuilder.ToString();
}
}


反射操作辅助类ReflectionUtil测试代码:
public class TestReflectionUtil
{
public static string Execute()
{
string result = string.Empty;
result += "使用ReflectionUtil反射操作辅助类:" + "\r\n";


try
{
Person person = new Person();
person.Name = "wuhuacong";
person.Age = 20;
result += DecriptPerson(person);


person.Name = "Wade Wu";
person.Age = 99;
result += DecriptPerson(person);
}
catch (Exception ex)
{
result += string.Format("发生错误:{0}!\r\n \r\n", ex.Message);
}
return result;
}


public static string DecriptPerson(Person person)
{
string result = string.Empty;


result += "name:" + ReflectionUtil.GetField(person, "name") + "\r\n";
result += "age" + ReflectionUtil.GetField(person, "age") + "\r\n";


result += "Name:" + ReflectionUtil.GetProperty(person, "Name") + "\r\n";
result += "Age:" + ReflectionUtil.GetProperty(person, "Age") + "\r\n";


result += "Say:" + ReflectionUtil.InvokeMethod(person, "Say", new object[] {}) + "\r\n";


result += "操作完成!\r\n \r\n";


return result;
}
}


3. 注册表访问辅助类RegistryHelper
/**////


/// 注册表访问辅助类
///

public sealed class RegistryHelper
{
private string softwareKey = string.Empty;
private RegistryKey rootRegistry = Registry.CurrentUser;


/**////


/// 使用注册表键构造,默认从Registry.CurrentUser开始。
///

/// 注册表键,格式如"SOFTWARE\\Huaweisoft\\EDNMS"的字符串
public RegistryHelper(string softwareKey) : this(softwareKey, Registry.CurrentUser)
{
}


/**////


/// 指定注册表键及开始的根节点查询
///

/// 注册表键
/// 开始的根节点(Registry.CurrentUser或者Registry.LocalMachine等)
public RegistryHelper(string softwareKey, RegistryKey rootRegistry)
{
this.softwareKey = softwareKey;
this.rootRegistry = rootRegistry;
}



/**////


/// 根据注册表的键获取键值。
/// 如果注册表的键不存在,返回空字符串。
///

/// 注册表的键
/// 键值
public string GetValue(string key)
{
const string parameter = "key";
if (null == key)
{
throw new ArgumentNullException(parameter);
}


string result = string.Empty;
try
{
RegistryKey registryKey = rootRegistry.OpenSubKey(softwareKey);
result = registryKey.GetValue(key).ToString();
}
catch
{
;
}


return result;
}


/**////


/// 保存注册表的键值
///

/// 注册表的键
/// 键值
/// 成功返回true,否则返回false.
public bool SaveValue(string key, string value)
{
const string parameter1 = "key";
const string parameter2 = "value";
if (null == key)
{
throw new ArgumentNullException(parameter1);
}


if (null == value)
{
throw new ArgumentNullException(parameter2);
}


RegistryKey registryKey = rootRegistry.OpenSubKey(softwareKey, true);


if (null == registryKey)
{
registryKey = rootRegistry.CreateSubKey(softwareKey);
}
registryKey.SetValue(key, value);


return true;
}
}


注册表访问辅助类RegistryHelper测试代码:
public class TestRegistryHelper
{
public static string Execute()
{
string result = string.Empty;
result += "使用RegistryHelper注册表访问辅助类:" + "\r\n";


RegistryHelper registry = new RegistryHelper("SoftWare\\HuaweiSoft\\EDNMS");
bool sucess = registry.SaveValue("Test", DateTime.Now.ToString("hh:mm:ss"));
if (sucess)
{
result += registry.GetValue("Test");
}


return result;
}
}


4. 压缩/解压缩辅助类ZipUtil
/**////


/// 压缩/解压缩辅助类
///

public sealed class ZipUtil
{
private ZipUtil()
{
}


/**////


/// 压缩文件操作
///

/// 待压缩文件名
/// 压缩后的文件名
/// 0~9,表示压缩的程度,9表示最高压缩
/// 缓冲块大小
public static void ZipFile(string fileToZip, string zipedFile, int compressionLevel, int blockSize)
{
if (! File.Exists(fileToZip))
{
throw new FileNotFoundException("文件 " + fileToZip + " 没有找到,取消压缩。");
}


using (FileStream streamToZip = new FileStream(fileToZip, FileMode.Open, FileAccess.Read))
{
FileStream fileStream = File.Create(zipedFile);
using (ZipOutputStream zipStream = new ZipOutputStream(fileStream))
{
ZipEntry zipEntry = new ZipEntry(fileToZip);
zipStream.PutNextEntry(zipEntry);
zipStream.SetLevel(compressionLevel);


byte[] buffer = new byte[blockSize];
Int32 size = streamToZip.Read(buffer, 0, buffer.Length);
zipStream.Write(buffer, 0, size);


try
{
while (size < streamToZip.Length)
{
int sizeRead = streamToZip.Read(buffer, 0, buffer.Length);
zipStream.Write(buffer, 0, sizeRead);
size += sizeRead;
}
}
catch (Exception ex)
{
throw ex;
}
zipStream.Finish();
}
}
}


/**////


/// 打开sourceZipPath的压缩文件,解压到destPath目录中
///

/// 待解压的文件路径
/// 解压后的文件路径
public static void UnZipFile(string sourceZipPath, string destPath)
{
if (!destPath.EndsWith(Path.DirectorySeparatorChar.ToString()))
{
destPath = destPath + Path.DirectorySeparatorChar;
}


using (ZipInputStream zipInputStream = new ZipInputStream(File.OpenRead(sourceZipPath)))
{
ZipEntry theEntry;
while ((theEntry = zipInputStream.GetNextEntry()) != null)
{
string fileName = destPath + Path.GetDirectoryName(theEntry.Name) +
Path.DirectorySeparatorChar + Path.GetFileName(theEntry.Name);


//create directory for file (if necessary)
Directory.CreateDirectory(Path.GetDirectoryName(fileName));


if (!theEntry.IsDirectory)
{
using (FileStream streamWriter = File.Create(fileName))
{
int size = 2048;
byte[] data = new byte[size];
try
{
while (true)
{
size = zipInputStream.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
catch
{
}
}
}
}
}
}
}
压缩/解压缩辅助类ZipUtil测试代码:
public class TestZipUtil
{
public static string Execute()
{
string result = string.Empty;
result += "使用ZipUtil压缩/解压缩辅助类:" + "\r\n";


try
{
ZipUtil.ZipFile("Web.Config", "Test.Zip", 6, 512);
ZipUtil.UnZipFile("Test.Zip", "Test");


result += "操作完成!\r\n \r\n";
}
catch (Exception ex)
{
result += string.Format("发生错误:{0}!\r\n \r\n", ex.Message);
}
return result;
}
}


来源:cnblogs







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.