Дело в том, что у вас есть две фазы с unity-container
, регистрация и разрешение.Поскольку вы не знаете значение Guid
при регистрации, вы должны удалить InjectionConstructor
из регистрации.
container.RegisterType<UserRepository>();
С другой стороны, вы знаете Guid
во время разрешения, исходит из запроса.Таким образом, идея состоит в том, чтобы разрешить IUserRepository
и ввести туда Guid
.Это означает, что с каждым запросом вы будете разрешать новый экземпляр репозитория и вставлять в него значение Guid
...
guid = Guid.Parse(request.Headers["CurrentUserId"])
var rep = _container.Resolve<UserRepository>(new ParameterOverride("currentUserId", guid));