| File: Commands\Reference\ReferenceRemoveCommandDefinition.cs | Web Access |
| Project: src\sdk\src\Cli\Microsoft.DotNet.Cli.Definitions\Microsoft.DotNet.Cli.Definitions.csproj (Microsoft.DotNet.Cli.Definitions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.CommandLine; namespace Microsoft.DotNet.Cli.Commands.Reference.Remove; internal sealed class ReferenceRemoveCommandDefinition : ReferenceRemoveCommandDefinitionBase { public new const string Name = "remove"; public readonly Option<string?> FileOption = ReferenceCommandDefinition.CreateFileOption(); public ReferenceRemoveCommandDefinition() : base(Name) { Options.Add(FileOption); } public ReferenceCommandDefinition Parent => (ReferenceCommandDefinition)Parents.Single(); public override Option<string?>? GetFileOption() => FileOption; public override Option<string?>? GetProjectOption() => Parent.ProjectOption; public override Argument<string>? GetProjectOrFileArgument() => null; } internal abstract class ReferenceRemoveCommandDefinitionBase : Command { public static Argument<IEnumerable<string>> CreateProjectPathArgument() => new(CommandDefinitionStrings.ReferenceRemoveProjectPathArgumentName) { Description = CommandDefinitionStrings.ReferenceRemoveProjectPathArgumentDescription, Arity = ArgumentArity.OneOrMore, }; public static Option<string> CreateFrameworkOption() => new("--framework", "-f") { Description = CommandDefinitionStrings.ReferenceRemoveCmdFrameworkDescription, HelpName = CommandDefinitionStrings.CommonCmdFramework }; public readonly Argument<IEnumerable<string>> ProjectPathArgument = CreateProjectPathArgument(); public readonly Option<string> FrameworkOption = CreateFrameworkOption(); public ReferenceRemoveCommandDefinitionBase(string name) : base(name, CommandDefinitionStrings.ReferenceRemoveAppFullName) { Arguments.Add(ProjectPathArgument); Options.Add(FrameworkOption); } public abstract Option<string?>? GetFileOption(); public abstract Option<string?>? GetProjectOption(); public abstract Argument<string>? GetProjectOrFileArgument(); }