コンソールアプリケーションベース処理。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ToolConsole { class Program { /// <summary> /// メイン処理 /// </summary> /// <param name="args">パラメータ</param> /// <returns>終了コード</returns> static int Main(string[] args) { return (new AppProcess()).Run(args); } } }
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Diagnostics; using System.Reflection; using System.Text; namespace ToolConsole { /// <summary> /// APPプロセスクラス /// </summary> public class AppProcess { #region 変数 #endregion #region 列挙対 /// <summary> /// 処理コード /// </summary> public enum ExitCode { /// <summary> /// 正常終了 /// </summary> Success = 0, /// <summary> /// 異常終了 /// </summary> Error = 100, /// <summary> /// 例外終了 /// </summary> Exception = 200, } #endregion #region コンストラクタ /// <summary> /// コンストラクタ /// </summary> public AppProcess() { Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress); } #endregion #region APP処理 /// <summary> /// APP処理 /// </summary> /// <param name="args">パラメータ</param> /// <returns>終了コード</returns> private ExitCode Execute(string[] args) { ExitCode exitCode = ExitCode.Success; //TODO アプリ処理を記述 Debug.WriteLine("app.Run実行"); return exitCode; } #endregion #region 実行処理 /// <summary> /// 実行処理 /// </summary> /// <param name="args">パラメータ</param> /// <returns>終了コード</returns> public int Run(string[] args) { Assembly myAssembly = Assembly.GetEntryAssembly(); string appPath = myAssembly.Location; string appName = Path.GetFileName(appPath); Debug.WriteLine(string.Format("{0}処理開始", appName)); try { ExitCode exitCode = this.Execute(args); if (exitCode == ExitCode.Error) { Environment.Exit((int)ExitCode.Error); } } catch (Exception ex) { //TODO logに例外情報出力 Environment.Exit((int)ExitCode.Exception); } finally { } Debug.WriteLine(string.Format("{0}処理終了", appName)); return (int)ExitCode.Success; } #endregion #region CancelKeyPress イベント /// <summary> /// CancelKeyPress イベント /// </summary> /// <param name="sender">送信元オブジェクト</param> /// <param name="e">イベントオブジェクト</param> /// <remarks>[Ctrl]+[C]キーが押されたときに呼び出される</remarks> void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e) { //TODO 強制終了対応処理を記述 Debug.WriteLine("強制終了処理実行"); } #endregion } }