【问题标题】:How to access the Application object from a console app?如何从控制台应用程序访问 Application 对象?
【发布时间】:2011-09-13 14:34:48
【问题描述】:

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

【问题讨论】:

  • 感谢您的回答。事实证明,我将 System.Windows.Forms 命名空间的引用添加到了错误的项目中,这就是它无法识别它的原因。所以,很抱歉给您带来的麻烦和问题。

标签: c# console-application


【解决方案1】:

System.Reflection.Assembly.GetExecutingAssembly().Location

另外,在需要的目录中,将调用包装在 System.IO.Path.GetDirectory() 中

【讨论】:

  • "Application object to get the start up path" 你没有在 Console App 中使用 Application 对象,你需要路径,使用上面的行 - 所以它是相关的
【解决方案2】:

您需要同时添加对 System.Windows.Forms 的引用(右键单击引用和“添加引用...”)并添加 using System.Windows.Forms 在文件顶部。 它对我有用。

【讨论】:

    【解决方案3】:

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

    Assembly.GetExecutingAssembly().CodeBase
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-08
        • 1970-01-01
        • 1970-01-01
        • 2016-04-06
        相关资源
        最近更新 更多