我编写了一个窗口服务,它从xml文件中获取输入。该文件放在.exe本身的文件夹中。但我希望该窗口服务从App.config中获取输入。 我读到App配置名称已更改为service.exe.config并且每个地方都有关于我们如何从中访问连接字符串。有人告诉我从窗口服务中的app config获取应用程序设置的方法。
我有一个google很多,但可以做到这一点。 目前的代码是:
protected override void OnStart(string[] args)
{
current_directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
XmlDocument xml = new XmlDocument();
try
{
string Xml_Path = System.AppDomain.CurrentDomain.BaseDirectory;
xml.Load(current_directory + "\\Data.xml");//suppose that myXmlString contains "<Names>...</Names>"
XmlNodeList xnList = xml.SelectNodes("/Names/Name");
foreach (XmlNode xn in xnList)
{
strDir = xn["Directory"].InnerText;
fileMask = xn["FileMask"].InnerText;
strBatfile = xn["Batch"].InnerText;
strlog = xn["Log"].InnerText;
}
//strDir = ConfigurationManager.AppSettings["Directory"];
//fileMask = ConfigurationManager.AppSettings["FileMask"];
//strBatfile = ConfigurationManager.AppSettings["Batch"];
//strlog = ConfigurationManager.AppSettings["Log"];
m_Watcher = new FileSystemWatcher();
m_Watcher.Filter = fileMask;
m_Watcher.Path = strDir + "\\";
m_Watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
m_Watcher.Created += new FileSystemEventHandler(OnCreated);
m_Watcher.Deleted += new FileSystemEventHandler(OnDeleated);
m_Watcher.Renamed += new RenamedEventHandler(OnRenamed);
m_Watcher.EnableRaisingEvents = true;
}
catch (Exception exception)
{
CustomException.Write(CustomException.CreateExceptionString(exception.ToString()));
}
}
但有点像。
//strDir = ConfigurationManager.AppSettings["Directory"];
//fileMask = ConfigurationManager.AppSettings["FileMask"];
//strBatfile = ConfigurationManager.AppSettings["Batch"];
//strlog = ConfigurationManager.AppSettings["Log"];
不起作用。在发布模式下,xml也不可用。
有人可以给我访问app config的方法来将输入参数传递给Window服务。
答案 0 :(得分:1)
如果您的窗口服务应用程序生成WindowService1.exe,那么您的配置文件App.config将更改为WindowService1.exe.config。
现在从配置文件中读取,您可以使用
ConfigurationManager.AppSettings["key"]
如果您无法获得ConfigurationManager,则必须添加对System.Configuration程序集的引用。