如何从控制台应用程序访问应用程序对象?

4
我从我的C# Windows窗体应用程序中获取了一些代码,代码使用Application对象获取启动路径并尝试在控制台应用程序中使用它。当我这样做时,编译器显示以下错误消息 -“当前上下文中不存在' Application '的名称。经过一些研究,发现Application对象在System.Windows.Forms命名空间中。因此,我添加了一个引用,但似乎没有效果。然后,我尝试在文件顶部添加using System.Windows.Forms,并收到一个新的错误消息 -“System命名空间中不存在'Windows'类型或命名空间(是否缺少程序集引用?)”。有谁能解释如何从控制台应用程序中访问Application对象吗?

1
谢谢回答。事实证明我将对 System.Windows.Forms 命名空间的引用添加到了错误的项目中,这就是为什么它无法识别的原因。所以,很抱歉给大家带来麻烦,问题已解决。 - Bob Bryan
4个回答

6

System.Reflection.Assembly.GetExecutingAssembly().Location

可以获取当前执行的程序集的路径。

如果需要目录,可以使用System.IO.Path.GetDirectory()进行包装调用。


1
获取启动路径的应用程序对象。在控制台应用程序中不使用应用程序对象,如果需要路径,请使用上面的代码行 - 这样才是相关的。 - Denis Biondic

2

该应用程序不适用于控制台应用程序,而是用于Windows表单。您可以使用

Assembly.GetExecutingAssembly().CodeBase

1
你需要在“引用”上右键单击,“添加引用...”,并在文件顶部添加using System.Windows.Forms来引用System.Windows.Forms。这对我有用。

0
Denis Biondic提供的方法是控制台应用程序的正确方式。但是回答您的问题,如果您在应用程序的引用中添加了对System.Windows的引用,那么您可以这样做。当您选择控制台应用程序模板时,默认情况下不包括该引用,因此如果您需要从该命名空间获取成员,则必须向dll添加引用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接