Property with init-only setter results in MissingMethodException
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 42/100
Direção de pesquisa
Comece pelo stack trace em CommandLine.Core.InstanceBuilder.Build e reproduza o caso da propriedade init-only do .NET Fiddle vinculado. Rastreie como Parser.ParseArguments cria a instância de Options e, em seguida, verifique se o parsing de um tipo Options com um setter init-only é concluído sem MissingMethodException.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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)
- Linguagem predominante
- C#
- Estrelas
- 4.8k
- Forks
- 478
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de commandlineparser/commandline
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
commandlineparser/commandline#951 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
commandlineparser/commandline#880 · 2 reações ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 45/100
commandlineparser/commandline#952 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
commandlineparser/commandline#948 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
commandlineparser/commandline#947 ·
Todas as issues de commandlineparser/commandline
Issues semelhantes
-
core dependencies
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 80/100
-
bug frontend good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Down / Waiting for removal
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100