commandlineparser / commandlineparser/commandline

Console.Error should not be referenced in a static object

Ouverte
#747 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
C#
Étoiles
4.8k
Forks
478
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

Changing the Console.Error throws System.ObjectDisposedException

Console.Error can be changed using Console.SetError() method, so having this as a static reference prevents using the "newly" assigned TextWriter as it keeps the referenced to the original instance which has been disposed.

"Cannot write to a closed TextWriter."
at System.IO.StringWriter.Write(String value)
at System.IO.TextWriter.SyncTextWriter.Write(String value)
at CommandLine.Parser.<>c__DisplayClass17_0`1.b__1(IEnumerable`1 _, TextWriter writer)
at CSharpx.MaybeExtensions.Do[T1,T2](Maybe`1 maybe, Action`2 action)
at CommandLine.Parser.<>c__DisplayClass17_0`1.b__0(IEnumerable`1 errors)
at CommandLine.ParserResultExtensions.WithNotParsed[T](ParserResult`1 result, Action`1 action)
at CommandLine.Parser.DisplayHelp[T](ParserResult`1 parserResult, TextWriter helpWriter, Int32 maxDisplayWidth)
at CommandLine.Parser.MakeParserResult[T](ParserResult`1 parserResult, ParserSettings settings)
at CommandLine.Parser.ParseArguments(IEnumerable`1 args, Type[] types)
at TestApp.Program.Main(String[] args) in Program.cs:line 25
at TestApp.Tests.ProgramTest.Main_ShouldExecuteCommandSuccesfully(List`1 args) in ProgramTest.cs:line 18

https://github.com/commandlineparser/commandline/blob/d443a51aeb3a418425e970542b3b96e9da5f62e2/src/CommandLine/Parser.cs#L22

```c#
private static readonly Lazy DefaultParser = new Lazy(() => new Parser(new ParserSettings { HelpWriter = Console.Error }));
```

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.