Части моего кода должны использовать ServiceLocator, поскольку внедрение конструктора не поддерживается.
Мой класс запуска настраивает службы.У меня есть переходные, другие одноэлементные, другие ограничены.
Например:
services.AddScoped<IAppSession, AppSession>();
services.AddScoped<IAuthentication, Authentication>();
services.AddScoped<NotificationActionFilter>();
В конце определения моего сервиса у меня есть следующий блок кода, которыйустанавливает указатель службыЭкземпляры, возвращаемые из локатора службы, выглядят как одиночные и не учитывают область видимости.
Код для DependencyResolver
выглядит следующим образом:
public class DependencyResolver
{
public static DependencyResolver Current { get; set; }
public Func<Type, object> ResolverFunc { get; set; }
public T GetService<T>()
{
return (T)ResolverFunc(typeof(T));
}
}
Как это исправить?