C#:为什么应用程序在System.Windows.Forms中?

Svi*_*ish 8 .net c#

Application在课堂上System.Windows.Forms有一些属性是非常有用的.例如:

  • 产品名称
  • 的ProductVersion
  • 公司名
  • ExecutablePath
  • StartupPath
  • CommonAppDataPath
  • CommonAppDataRegistry
  • UserAppDataPath
  • UserAppDataRegistry
  • LocalUserAppDataPath

为什么这些在课堂上System.Windows.Forms?如果我想CommonAppDataPath在控制台应用程序中访问该怎么办?我是否必须引用System.Windows.Forms.dll,或者是否有控制台应用程序的替代方案?

mar*_*c_s 9

对于路径,您还可以查看Environment.NET 中的类:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)

你可以要求提供一大堆"特殊"文件夹.

默认情况下,CompanyName和其他选项从"Properties"文件夹中的"AssemblyInfo.cs"中提取 - 如果您有这样的文件,您也可以自己在代码中访问它们.

嗯,有了这些路径,你必须自己附加公司名称和产品名称等等......

是的,这就是System.Windows.Forms程序集正在为您做的事情.如果你没有Winforms应用程序,你必须自己做,这是真的.

  • 例如:当我打印出`Application.UserAppDataPath`时,我得到*C:\ Users\userName\AppData\Roaming\CompanyName\ProductName\ProductVersion*.但是当我打印出Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)时,我只得到*C:\ Users\userName\AppData\Roaming*. (2认同)

Jam*_*mes 1

引用自 MSDN System.Windows.Forms命名空间文档:

System.Windows.Forms 命名空间包含用于创建基于 Windows 的应用程序的类,这些应用程序充分利用 Microsoft Windows 操作系统中丰富的用户界面功能。

我可以看到 Application 类被放置在 System.Windows.Forms 命名空间中的唯一真正原因是它处理通常由 Form 控件发布的 Windows 消息。