Property with init-only setter results in MissingMethodException
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia con lo stack trace in CommandLine.Core.InstanceBuilder.Build e riproduci il caso della proprietà init-only dal .NET Fiddle collegato. Traccia il modo in cui Parser.ParseArguments crea l’istanza di Options, quindi verifica che il parsing di un tipo Options con un setter init-only venga completato senza MissingMethodException.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
In case of read-only properties in the command line options class, where a property is defined as
public string Foo
{
get;
init;
}
you will get a MissingMethodException when parsing the command line.
To Reproduce
See this fiddle https://dotnetfiddle.net/J05g0c
Expected behavior
The exception is not thrown
Additional context
The resulting stack trace is as follows:
Unhandled exception. System.MissingMethodException: Cannot dynamically create an instance of type 'Options'. Reason: No parameterless constructor defined.
at System.RuntimeType.ActivatorCache..ctor(RuntimeType rt)
at System.RuntimeType.CreateInstanceOfT()
at System.Activator.CreateInstance[T]()
at CommandLine.Core.InstanceBuilder.<>c__1`1.<Build>b__1_0(Func`1 f)
at CSharpx.MaybeExtensions.MapValueOrDefault[T1,T2](Maybe`1 maybe, Func`2 func, T2 noneValue)
at CommandLine.Core.InstanceBuilder.Build[T](Maybe`1 factory, Func`3 tokenizer, IEnumerable`1 arguments, StringComparer nameComparer, Boolean ignoreValueCase, CultureInfo parsingCulture, Boolean autoHelp, Boolean autoVersion, Boolean allowMultiInstance, IEnumerable`1 nonFatalErrors)
at CommandLine.Parser.ParseArguments[T](IEnumerable`1 args)
at Program.Main(String[] args)
- Lingua principale
- C#
- Stelle
- 4.8k
- Fork
- 478
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di commandlineparser/commandline
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
commandlineparser/commandline#951 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
commandlineparser/commandline#880 · 2 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
commandlineparser/commandline#952 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
commandlineparser/commandline#948 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
commandlineparser/commandline#947 ·
Tutte le issue di commandlineparser/commandline
Issue simili
-
bug frontend good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
CS0162 "Unreachable code detected" warning from a MSBuildTemp .tmp file in every game project Apertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Type: enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
apache/arrow-adbc#4809 ·