2009-11-02 8 views
8

ApplicationクラスのSystem.Windows.Formsには、非常に有用ないくつかのプロパティがあります。例えば:C#:System.Windows.Formsのアプリケーションはなぜですか?

  • 商品名
  • PRODUCTVERSION
  • 得意
  • ExecutablePath
  • StartupPath
  • CommonAppDataPath
  • CommonAppDataRegistry
  • UserAppDataPath
  • UserAp pDataRegistry
  • LocalUserAppDataPath

なぜこれらはSystem.Windows.Formsでクラスの中にありますか?コンソールアプリケーションでCommonAppDataPathにアクセスするにはどうすればよいですか? System.Windows.Forms.dllを参照する必要がありますか、コンソールアプリケーションの代替手段はありますか?

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 

を、あなたが求めることができ、「特別な」フォルダの全体のスルーがあります:

答えて

1

のSystem.Windows.Forms名前空間には、Microsoft Windowsオペレーティングシステムで利用可能なリッチなユーザーインターフェイス機能をフルに活用するWindowsベースのアプリケーションを作成するためのクラスが含まれています。

ApplicationクラスがSystem.Windows.Forms名前空間に配置されているのがわかる唯一の理由は、Formコントロールによって通常ポストされるWindowsメッセージを処理するためです。

+1

ええ、それは本当です。私は、Microsoftの誰かが、単一責任の原則または何かを混乱させてしまったと思います。...:p – Svish

+0

どちらも初めてではありません! :P – James

9

パスの場合、あなたはまた、.NETでEnvironmentクラスで見ることができます。

CompanyNameとその他のオプションは、デフォルトで[プロパティ]フォルダ内の "AssemblyInfo.cs"から取得されます。このようなファイルをお持ちの場合は、これらのファイルにアクセスすることもできます。 へ

あなたが持っているそれらのパスを持つフム、はい、それはのSystem.Windows.Formsアセンブリがためにやっていることだけれども...

を会社名および製品 名を追加して、そのような自分君は。 Winformsアプリケーションをお持ちでない場合は、それを自分で行う必要があります。それは本当です。

マルク・

+0

+1すべての有用なものはwinforms –

+0

Hmに限定されず、あらゆる.netアプリケーションで利用できますが、それらのパスで会社名と製品名などを追加する必要があります。 。 – Svish

+0

@スヴィッシュ:私はあなたが意味することを理解していません。これらはWindowsが内部的に保持するデフォルトの "特別なフォルダ"です。つまり、ユーザーのAppDataディレクトリやそのようなものです。 –

0

Applicationクラスは、Windowsフォームに緊密に関連しているWin32のメッセージループを起動します。 MSDN System.Windows.Forms名前空間のドキュメントから引用

0

あなたは、このような「商品名」としてアセンブリの名前空間

+0

例がありますか? – Svish

2

情報を使用して探している情報を得ることができるがWinFormsのアプリケーションで本体から来ています。 ASP.NETアプリケーションには「メイン」アセンブリはありません。

プロファイルを持たないサービスアカウント(ASP.NETアプリケーションの場合が多い)で実行している場合、UserAppDataPathは存在しません。実際、UserAppDataPathプロパティを逆参照しようとすると例外がスローされます。

これらの理由から、この情報をASP.NETアプリケーションに公開することは意味がありません。

+0

良い点。物事のASP.NET側について考えていない:) – Svish

関連する問題