Написание собственного генератора кода для Dotnet Core

Я пытаюсь написать собственный генератор кода для ядра dotnet, но пока что добился небольшого успеха из-за ограниченной документации.

Немного побродил по исходному коду CodeGeneration, узнал, как запускать генераторы из командной строки и как он работает внутри.

Поскольку генераторы, доступные в ядре dotnet, не удовлетворят мои потребности, я попытался написать свой собственный CodeGenerator, но, похоже, он не может вызвать его с помощью команды «dotnet aspnet-codegenerator». Ниже приведен мой собственный генератор кода (в настоящее время не имеет реализации - моя цель - иметь возможность вызвать его из dotnet cli и в итоге получить исключение),

namespace TestWebApp.CodeGenerator
{
    [Alias("test")]
    public class TestCodeGenerator : ICodeGenerator
    {
        public async Task GenerateCode(TestCodeGeneratorModel model)
        {
            await Task.CompletedTask;

            throw new NotImplementedException();
        }
    }

    public class TestCodeGeneratorModel
    {
        [Option(Name = "controllerName", ShortName = "name", Description = "Name of the controller")]
        public string ControllerName { get; set; }

        [Option(Name = "readWriteActions", ShortName = "actions", Description = "Specify this switch to generate Controller with read/write actions when a Model class is not used")]
        public bool GenerateReadWriteActions { get; set; }
    }
}

Ниже показано, как я пытаюсь вызвать генератор кода,

dotnet aspnet-codegenerator -p . TestCodeGenerator TestController -m TestWebApp.Models.TestModel

или же

dotnet aspnet-codegenerator -p . test TestController -m TestWebApp.Models.TestModel

Это, однако, похоже, не работает и жалуется на невозможность найти генератор нестандартного кода. Смотрите сообщение об ошибке ниже,

Finding the generator 'TestCodeGenerator'...
No code generators found with the name 'TestCodeGenerator'
   at Microsoft.VisualStudio.Web.CodeGeneration.CodeGeneratorsLocator.GetCodeGenerator(String codeGeneratorName)
   at Microsoft.VisualStudio.Web.CodeGeneration.CodeGenCommand.Execute(String[] args)
RunTime 00:00:06.23

Что мне не хватает или какие изменения я должен сделать, чтобы CogeGenerator поднял мой пользовательский класс?

Репро:Github

Ответы на вопрос(1)

Ваш ответ на вопрос