Динамические значения реестра структуры карты по умолчанию
Я пытаюсь вставить строку в реестр Structuremap во время выполнения. я успешно сделал это со статической строкой. как это
For<TestDAL>().Use<TestDAL>().Ctor<string>("connectionString").Is("randomStringData");
но когда я пытаюсь сделать строку динамической во время выполнения, я не могу понять, как ее отправить, я пробовал HttpContext и Session, но они всегда пусты, как в примере ниже:
HttpContext.Current.GetOwinContext().Environment.TryGetValue("dynamicString", out object dynString);
For<TestDAL>().Use<TestDAL>().Ctor<string>("connectionString").Is(dynString);
Пожалуйста, кто-нибудь есть anyidea о том, как это сделать?
1 ответ
Вы только оцениваете dynamicString
совершенно заранее. Возможно, вам придется сделать это ленивым, чтобы он оценивался как раз вовремя:
For<TestDAL>().Use<TestDAL>().Ctor<string>("connectionString").Is(() => {
string dynString = null;
HttpContext.Current.GetOwinContext()
.Environment.TryGetValue("dynamicString", out object dynString);
return dynString;
});