commandlineparser / commandlineparser/commandline
Proposal for handling multiple mutual exclusive sets
- Lenguaje dominante
- C#
- Estrellas
- 4.8k
- Forks
- 478
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
As probably already discussed in #79 and #93 I would need to specify multiple mutual exclusive sets.
I would suggest to distinguish between multiple sets at an interface level.
For example I have a command that requires either a workspace name or a path to a workspace. The same command expects a connection name or user-host combination:
```csharp
interface IWorkspaceOptions
{
[Option(Required = true, SetName = "fromName")]
string WorkspaceName { get; set; }
[Option(Required = true, SetName = "Path")]
string FromPath { get; set; }
}
interface IConnectionOptions
{
[Option(Required = true, SetName = "fromName")] // not in the same set as IWorkspaceOptions !
string ConnectionName { get; set; }
[Option(Required = true, SetName = "Params")]
string Host { get; set; }
[Option(SetName = "Params")]
string User { get; set; }
}
class Opts : IWorkspaceOptions, IConnectionOptions
{
public string ConnectionName { get; set; }
public string Host { get; set; }
public string User { get; set; }
public string WorkspaceName { get; set; }
public string FromPath { get; set; }
}
```
I would expect the following command lines to be valid:
```
--WorkspaceName MyWorkspace --ConnectionName MyConnection
--WorkspaceName MyWorkspace --Host 1.2.3.4
--WorkspaceName MyWorkspace --Host 1.2.3.4 --User Foo
--FromPath C:\TMP --ConnectionName MyConnection
--FromPath C:\TMP --Host 1.2.3.4
--FromPath C:\TMP --Host 1.2.3.4 --User Foo
```
and the following invalid:
```--WorkspaceName MyWorkspace```
> Missing required connection options
```--ConnectionName MyConnection```
> Missing workspace options
```--WorkspaceName MyWorkspace --ConnectionName MyConnection --User Foo```
> Invalid mixture of mutual exclusive connection options
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.