commandlineparser / commandlineparser/commandline

Add support for validation and custom types

Aberta
#146 26 comentários 12 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C#
Estrelas
4.8k
Forks
478
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

**Issue by [clmcgrath](https://github.com/clmcgrath)**
_Monday Jun 26, 2017 at 18:21 GMT_
_Originally opened as https://github.com/gsscoder/commandline/issues/455_

----

Add some sort of hook or attribute to plug validation into the parser pipeline

similar some similar frameworks use attributes or factory registration to allow an entrypoint for custom validation and type mapping (DI support would be awesome as well ;) )

a typical and widely used usage scenario for this would be filesystem path validation and mapping to IO classes such as FileInfo / DirectoryInfo
an seemingly easy way to to add this type of validation functionality would be to allow validation attributes that inherit from a validation base class or interface and run custom or pre-written code

some examples of validation provided in similar frameworks are
```csharp
[FileExists]
[DirectoryExists]
[FileNotExists]
[DirectoryNotExists]
[RegExValidation]
```

Powerargs provides a special class called a Reviver for custom type mapping as well that the framework looks for to try and map values to a custom or complex type ie path string => `FileInfo`

It is very hard to find a framework that does all 3 of these well currently and make this library a go to framework for myself and many other developers i am sure

as CLP 2.x is still in beta and major rewrite phase i think now would be a good time to look at feature expansion as well to increase the power of this framework

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

A issue aponta o parser pipeline, os validation attributes, o custom type mapping e o Reviver do Powerargs como pontos de entrada relevantes, mas não indica arquivos nem testes do repositório. Comece revisando o parser rewrite do CLP 2.x e como os valores de FileInfo e DirectoryInfo são tratados atualmente. O trabalho estará concluído quando houver um design acordado e testes cobrindo os validation hooks e a custom type conversion.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
csharp
Domínio
cli
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.