我一直试图让 Lamar 为我们的依赖注入工作,但我缺乏这样做的经验让我有些悲伤。
我有一个简单的虚拟控制器:
[Route("[controller]")]
public class TestController : Controller
{
[HttpGet]
public int GetRandom()
{
TestService service = new TestService();
int value = service.GetRandomNumber();
return value;
}
}
TestService 内部是一个接口存储库,我希望 DI 应用到该存储库。
我已将 UseLamar 添加到我的 Program.cs 中,我的 startup.cs 如下所示:
public void ConfigureContainer(ServiceRegistry services)
{
services.AddMvc();
services.Scan(s =>
{
s.Assembly("Test.Components");
s.WithDefaultConventions();
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.Run(async (context) =>
{
await context.Response.WriteAsync("Invalid");
});
app.UseMvc();
}
通过阅读文档,我相信 Lamar 应该自动将我的接口映射到我的类型,因为它们具有相同的名称(IRepository -> Repository),尽管这不是我所看到的。
我很确定我错过了一些东西,但是我已经阅读了文档,并且一直在尝试用谷歌搜索真实的例子,但无济于事。Startup.cs 中是否缺少某些行?我的服务是否需要构造函数来设置存储库?