代码如下:
using System;
using System.Configuration;
using System.Reflection;
namespace NetStar.WSJob
{
/// <summary>
/// 服务安装配置帮助类
/// </summary>
internal class SettingHelper : IDisposable
{
#region 私有成员
private string _ServiceName;
private string _DisplayName;
private string _Description;
#endregion
#region 构造函数
/// <summary>
/// 初始化服务配置帮助类
/// </summary>
public SettingHelper()
{
InitSettings();
}
#endregion
#region 属性
/// <summary>
/// 系统用于标志此服务的名称
/// </summary>
public string ServiceName
{
get { return _ServiceName; }
}
/// <summary>
/// 向用户标志服务的友好名称
/// </summary>
public string DisplayName
{
get { return _DisplayName; }
}
/// <summary>
/// 服务的说明
/// </summary>
public string Description
{
get { return _Description; }
}
#endregion
private static object locker = new object();
/// <summary>
/// 获取服务配置
/// </summary>
public static ServiceConfig GetServiceConfig()
{
lock (locker)
{
var abs = Assembly.GetExecutingAssembly().Location;
var xml = System.IO.Path.GetDirectoryName(abs) + "//ServiceSetting.xml";
using (var reader = new System.IO.StreamReader(xml))
{
var xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(ServiceConfig));
var config = xmlSerializer.Deserialize(reader) as ServiceConfig;
return config;
}
}
}
#region 初始化服务配置信息
/// <summary>
/// 初始化服务配置信息
/// </summary>
private void InitSettings()
{
var config = GetServiceConfig();
if (config != null)
{
string name = string.Format("18live_{0}", Config.Constant.CacheServer);
_ServiceName = name;
_DisplayName = name;
_Description = config.Description;
}
}
#endregion
#region IDisposable 成员
private bool disposed = false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
_ServiceName = null;
_DisplayName = null;
_Description = null;
}
}
disposed = true;
}
~SettingHelper()
{
Dispose(false);
}
#endregion
}
}
调用GetServiceConfig方法就好了