在windows窗体应用程序中,我使用Application.Executable路径来访问App.config.,我需要在Windows服务中找到app.config。那会是什么
7xllpg7q1#
有几个选项:
System.Reflection.Assembly.GetExecutingAssembly().Location
对于当前程序集。或者,您可以从类型派生它:
System.Reflection.Assembly.GetAssembly(typeof(MyAssemblyType)).Location
然后(在任何一个上),您都可以使用Path.GetDirectoryName来获取它的源文件夹(假设您的app.config也在同一个目录中)。
Path.GetDirectoryName
w7t8yxp52#
查看AppDomain.BaseDirectory Property获取程序集冲突解决程序用于探测程序集的基目录。最常见的用法类似于
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
fnx2tebb3#
可能的选项包括:
AppDomain.CurrentDomain.BaseDirectory
或
Assembly.Location
Assembly.GetExecutingAssembly().CodeBase
我用了最后一个。
zysjyyx44#
您可以使用ConfigurationManager读取App.config:1.将对System.Configuration的引用添加到项目中。1.使用ConfigurationManager读取App.config:
ConfigurationManager
System.Configuration
ConfigurationManager.AppSettings["KeySample"]
在配置文件中,您可以像这样添加密钥:
<configuration> <appSettings> <add key="KeySample" value="SampleValue"/> </appSettings> </configuration>
所以你不需要找到路径。
4条答案
按热度按时间7xllpg7q1#
有几个选项:
对于当前程序集。或者,您可以从类型派生它:
然后(在任何一个上),您都可以使用
Path.GetDirectoryName
来获取它的源文件夹(假设您的app.config也在同一个目录中)。w7t8yxp52#
查看AppDomain.BaseDirectory Property
获取程序集冲突解决程序用于探测程序集的基目录。
最常见的用法类似于
fnx2tebb3#
可能的选项包括:
或
或
我用了最后一个。
zysjyyx44#
您可以使用
ConfigurationManager
读取App.config:1.将对
System.Configuration
的引用添加到项目中。1.使用
ConfigurationManager
读取App.config:在配置文件中,您可以像这样添加密钥:
所以你不需要找到路径。