Динамические значения реестра структуры карты по умолчанию

Я пытаюсь вставить строку в реестр 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;
});
Другие вопросы по тегам