Я хочу использовать IMemoryCache
в своем приложении ASP.Net Core, но проблема в том, что я не знаю, как зарегистрировать это в контейнере Unity DI, который используется вместо реализации DI по умолчанию.
Если бы я использовал DI по умолчанию, он работает, добавив
services.AddMemoryCache();
Line в startup.cs .
Так что я был бы признателен за любые идеи, которые помогутиспользовать IMemoryCache
с Unity DI, так как сейчас я получаю следующую ошибку:
InvalidOperationException: текущий тип, Microsoft.Extensions.Caching.Memory.IMemoryCache, является интерфейсом и не можетбыть построенным.Вам не хватает отображения типов?
Часть DI при запуске:
public void Configure (IApplicationBuilder app, IStringLocalizer<Startup> stringLocalizer)
{
InitializeContext ();
....
private static void InitializeContext ()
{
var container = new UnityContainer ();
UnityConfigurationSection section
= (UnityConfigurationSection) ConfigurationManager.GetSection ("unity");
section.Configure (container, "primaryUnityContainer");
var resolver = new UnityDependencyResolver (container);
container.RegisterInstance<IDependencyResolver> (resolver);
DependencyContext.Initialize (resolver);
}
ОБНОВЛЕНИЕ:
Это устаревший контейнер DI Unity от Microsoft.Practices.Unityпространство имен, которое нельзя использовать в качестве DI по умолчанию для ядра .net