У меня есть зависимость ServiceLifetime.Scoped
, которую я хочу создать только один раз для каждого веб-запроса, но ему нужно выполнить запрос на две службы. Один из них - это интерфейс, выполняемый реализацией, другой - сама реализация. Сейчас я в основном это делаю:Использовать ту же реализацию для двух служб с ASP.NET Dependency Injection
public interface IService {}
public class ServiceImplementation : IService {
public Object ImplementationSpecificState;
}
public void ConfigureServices(IServiceCollection services) {
services.AddScoped<IService, ServiceImplementation>();
services.AddScoped<ServiceImplementation>();
}
К сожалению, это дает мне два разных объекта с каждым веб-запросом. Один в коде, который зависит от ServiceImplementation
, и другой в коде, который зависит от IService
.
Как сделать запросы для IService
и ServiceImplementation
предоставить один и тот же базовый объект?
Подождите! Вы ответили на свой вопрос?!? – Brad
Да, это в рамках рекомендаций. Я застрял около 20 минут и опубликовал его, затем подумал об этом немного и решил его через 10 минут. Наверное, мне нужна была небольшая отладка резиновой утки. – Technetium