我有一个 net.core 3.1 托管服务应用程序。在此应用程序中,除了标准容器之外,autofac 还用作 DI 容器。我尝试添加并使用 IMemoryCache,如下所示:
\nHost.CreateDefaultBuilder(args)\n .ConfigureAppConfiguration(...)\n ...etc\n .UseServiceProviderFactory(new AutofacServiceProviderFactory())\n .ConfigureServices((hostContext, services) =>\n {\n // Register configuration\n services.AddMemoryCache();\n // some another services\n }\n .ConfigureContainer<ContainerBuilder>(ConfigureContainer)\n .UseConsoleLifetime();\nRun Code Online (Sandbox Code Playgroud)\n public class MyService: IMyService\n {\n private readonly IMemoryCache _memoryCache;\n \n public MyService(IMemoryCache memoryCache)\n {\n _memoryCache = memoryCache;\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n但是当应用程序启动时我得到这个异常:
\nAutofac.Core.DependencyResolutionException: An exception was thrown while activating \xce\xbb:Microsoft.Extensions.Hosting.IHostedService[] -> MyNamespace.WorkerService -> MyNamespace.MyAnotherService -> MyNamespace.SomeAnotherService -> …Run Code Online (Sandbox Code Playgroud)