无法在脚手架中向 DI 添加服务

Cannot add services to DI in a scaffolder

我正在尝试从 github 存储库中的那个开始创建一个自定义脚手架:我有一个脚手架项目,它是 mvc 脚手架的修改克隆和另一个 class 库.因为我想在我的库中使用 [NotNull]IApplicationEnvironment,所以我不得不添加对 Microsoft.Framework.CodeGeneration 的引用Microsoft.Framework.CodeGeneration.CommonMicrosoft.Framework.Runtime.Interfaces 在我的图书馆项目中。
当我 运行 我的特定生成器遇到一些问题时,我想向 DI 添加一些元素。

脚手架模块中的服务是在程序中配置的class: 我想在generator启动的时候加上这段初始化代码,但是找不到方法

我试图在程序class中添加代码,但我遇到了另一个问题:库引用了.CodeGeneration 模块,并添加到库中定义的服务classes我必须在 .CodeGeneration project.json 中添加对它的引用,所以我有一个循环引用,这是不支持的。

我该如何解决这个问题?

您似乎正在尝试定义新服务并将其注入默认服务集合,以便脚手架实现可以使用该服务。

由于服务和实现是在您的 class 库中定义的,因此要注入它,您必须修改 CodeGeneration class 库并添加对 class 库的引用,并且由于您的 class 库还实现了自定义脚手架,因此它需要引用 CodeGeneration class 库!

我看到 2 个选择:

  1. 您可以将服务和实现定义移动到 CodeGeneration class 库(在您的分支中)并让您的 class 库引用 CodeGeneration,而不是其他方式。
  2. 将您的服务和实现保存在单独的 class 库中,让 CodeGeneration 引用它,在不同的 class 库中实现您的脚手架,并让它引用 CodeGeneration。

我们可能会选择添加支持以从脚手架框架中的其他组件添加自定义服务,但这尚未完成。以上选择之一应该可以让你到那时为止。

如果有帮助请告诉我!