私はMono.Options
のパブリックインターフェイスでこれを行うには妥当な方法が見つかりませんでした。最良の結果は、解析時にAction
コールバックに渡された実際のオプション名を持つことですが、それだけではありません。
Mono.Options
'プロトタイプの解析メカニズムも非公開です。
私はプロトタイプを解析し、すべての可能なオプションの接頭辞(-
、--
、および/
)と組み合わせるオプションのエイリアスのいずれかのコマンドライン引数を検索手動で終わった:
public static string GetProvidedName(string flagPrototype, IEnumerable<string> commandLineArguments)
{
IEnumerable<string> flagNames = flagPrototype
.Split('|')
.Select(value => value.Replace("=", string.Empty).Replace(":", string.Empty))
.SelectMany(flagName =>
new string[]
{
$"-{flagName}",
$"--{flagName}",
$"/{flagName}"
});
return commandLineArguments.First(argument => flagNames.Contains(argument));
}
私はそれがことを願っています同じ問題を解決しようとする人にとって有益です。