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

C# 如何从控制台应用程序访问应用程序对象?,c#,console-application,C#,Console Application,我从我的C Windows窗体应用程序中获取一些代码,该应用程序使用Application对象获取启动路径,并尝试在控制台应用程序中使用它。当我这样做时,编译器显示以下错误消息-名称“applicationon”在当前上下文中不存在。进行了一些研究,发现应用程序对象位于System.Windows.Forms命名空间中。因此,我添加了一个引用,但没有明显的效果。然后,尝试使用System.Windows.Forms添加到文件顶部,并收到新的错误消息-命名空间“System”中不存在类型或命名空间

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

System.Reflection.Assembly.getExecutionGassembly.Location


另外,对于所需的目录,将调用包装在System.IO.Path.GetDirectory中

您需要添加对System.Windows.Forms的引用,右键单击引用和“添加引用…”并添加 使用文件顶部的System.Windows.Forms。
它对我很有用。

应用程序不适用于控制台应用程序,它适用于windows窗体。 你可以用

Assembly.GetExecutingAssembly().CodeBase

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

谢谢您的回答。事实证明,我将对System.Windows.Forms命名空间的引用添加到了错误的项目中,这就是它无法识别它的原因。所以,很抱歉,麻烦和问题已经解决。Application object要获取启动路径,您不需要在Console App中使用Application object,并且您需要该路径,请使用上面的行-因此它是相关的