バッチテストでは、ターミナルから既存のwinformsアプリケーション(MyApp.exeなど)を呼び出し、同じディレクトリの.xmlファイル.exe(MyAppConfig.xml)としてください。端末からstart /realtime c:\MyApp.exe /config="MyAppConfig.xml"
に電話できるようにするには、アプリケーションにどのような変更を加える必要がありますか?誰でもこの機能を実装する方法について正しい方向で私を指摘することができますか?ヘルプは高く評価しました。winformアプリケーションをterminalコマンドで実行し、構成引数xmlファイルをコマンド引数として指定します。
0
A
答えて
2
アプリケーションのProgram.cs
ファイルには、アプリケーションエントリポイントMain()
があります。署名を変更し、パラメータを保持する配列string
を追加します。次に、パラメータをチェックし、ロジックを実装します。このような
何か:
static void Main(string[] startArgs)
{
if (startArgs.Length == 0)
{
//show messagebox stating that there's no parameters or something else
}
else
{
var configArg = startArgs.FirstOrDefault(s => s.StartsWith("config"));
if (configArg == null)
{
//config parameter is missing
}
else
{
string xml = configArg.Split('=')[1];
//xml holds your path to your xml file.
//Now you can pass it to form, or load it here
//XmlDocument doc = new XmlDocument();
//doc.Load(xml);
//etc...
}
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
あなたが複数のコマンドラインパラメータを持つように計画している場合、あなたはコマンドライン引数を解析するために使用ApacheのコモンズのCLI APIの.NETのポートですNET CLIライブラリを探す必要があります。 ..
2
コンソールまたはフォームアプリケーションを構築する場合、Mainメソッドは通常、コードのエントリポイントとして機能します。これは、CLIから渡されるパラメータとして文字列の配列をとります。
public static void Main(string[] args)
{
for(int i = 0; i < args.Length; i++)
{
Console.WriteLine("Argument #{0} = {1}", i, args[i]);
}
}
だからprogram.exe FOO BAR
がもたらすであろう実行されている:
Argument #0 = FOO
Argument #1 = BAR
ます。また、引数が注文-独立しを作るためにprogram.exe config="MyAppConfig.xml"
表記法を使用することもできますが、あなたには、いくつかの構文解析を自分で行う必要があります。
ありがとう、非常に完全で清潔な説明! –
@MiroslavRadojević助けてくれると嬉しいです。 Sretno! ;) – Nino