从C#中引用的类库获取执行程序集的应用程序名称(即MyApplication.exe)的最佳方法是什么?
我需要打开应用程序的app.config来检索引用的DLL的一些appSettings变量.
要获得问题标题的答案:
// Full-name, e.g. MyApplication, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null string exeAssembly = Assembly.GetEntryAssembly().FullName; // or just the "assembly name" part (e.g. "MyApplication") string exeAssemblyName = Assembly.GetEntryAssembly().GetName().Name;
正如@Ben所提到的,既然你提到想要获取配置信息,请使用ConfigurationManager
该类.
如果您想获取当前appdomain的配置文件,那么您需要做的就是:
ConfigurationManager.AppSettings
....
(当然这需要引用System.Configuration).
要回答你的问题,你可以像雷说(或使用Assembly.GetExecutingAssembly().FullName
)那样做,但我认为问题更容易解决使用ConfigurationManager
.
要获得没有版本等的确切名称,请使用:
string appName = Assembly.GetEntryAssembly().GetName().Name;
适用于.NET v1.1及更高版本.
您可以通过类类型获取程序集...
typeof(MyClass).Assembly