Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Analýza a vyvolání jsou dva samostatné kroky, takže každá z nich má svou vlastní konfiguraci:
-
ParserConfiguration je třída, která poskytuje vlastnosti pro konfiguraci analýzy. Jedná se o volitelný argument pro každou
Parsemetodu, například Command.Parse a CommandLineParser.Parse. - InvocationConfiguration je třída, která poskytuje vlastnosti ke konfiguraci vyvolání. Jedná se o volitelný argument ParseResult.Invoke a ParseResult.InvokeAsync metody.
Jsou vystaveny vlastnostmi ParseResult.Configuration a ParseResult.InvocationConfiguration vlastnostmi. Pokud nejsou zadané, použijí se výchozí konfigurace.
ParserConfiguration
EnablePosixBundling
Sdružování jednoznakových možností je ve výchozím nastavení povolené, ale můžete ho zakázat nastavením vlastnosti na ParserConfiguration.EnablePosixBundling.
ResponseFileTokenReplacer
Soubory odpovědí jsou ve výchozím nastavení povolené, ale můžete je zakázat nastavením vlastnosti ResponseFileTokenReplacer na hodnotu null. Můžete také poskytnout vlastní implementaci pro přizpůsobení způsobu zpracování souborů odpovědí.
Soubor odpovědi může obsahovat jiné názvy souborů odpovědí, takže analýza může zahrnovat otevírání jiných souborů. Knihovna očekává, že všechny soubory odpovědí byly generovány a uloženy důvěryhodnými agenty.
InvocationConfiguration
Standardní výstup a chyba
InvocationConfiguration usnadňuje testování a mnoho scénářů rozšiřitelnosti více než použití System.Console. Zpřístupňuje dvě TextWriter vlastnosti: Output a Error. Tyto vlastnosti můžete nastavit na libovolnou TextWriterStringWriterinstanci, například na instanci, kterou můžete použít k zachycení výstupu pro testování.
Definujte jednoduchý příkaz, který zapisuje do standardního výstupu:
Option<FileInfo?> fileOption = new("--file")
{
Description = "An option whose argument is parsed as a FileInfo"
};
RootCommand rootCommand = new("Configuration sample")
{
fileOption
};
rootCommand.SetAction((parseResult) =>
{
FileInfo? fileOptionValue = parseResult.GetValue(fileOption);
parseResult.InvocationConfiguration.Output.WriteLine(
$"File option value: {fileOptionValue?.FullName}"
);
});
Teď použijte InvocationConfiguration k zachycení výstupu:
StringWriter output = new();
rootCommand.Parse("-h").Invoke(new() { Output = output });
Debug.Assert(output.ToString().Contains("Configuration sample"));
ČasovýLimitProUkončeníProcesu
Časový limit ukončení procesu lze nakonfigurovat prostřednictvím ProcessTerminationTimeout vlastnosti. Výchozí hodnota je 2 sekundy.
EnableDefaultExceptionHandler
Ve výchozím nastavení jsou všechny neošetřené výjimky vyvolané při vyvolání příkazu zachyceny a hlášeny uživateli. Toto chování můžete zakázat nastavením EnableDefaultExceptionHandler vlastnosti na falsehodnotu . To je užitečné, když chcete zpracovávat výjimky vlastním způsobem, například protokolováním nebo poskytováním jiného uživatelského prostředí.
Odvozené třídy
InvocationConfiguration není zapečetěný, takže z něj můžete přidat vlastní vlastnosti nebo metody. To je užitečné, když chcete poskytnout další možnosti konfigurace specifické pro vaši aplikaci.