1

我正在尝试在运行时将字符串注入结构映射注册表。我已经用一个静态字符串成功地完成了它。像这样

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);

请问有人知道如何做到这一点吗?

4

1 回答 1

1

你只是在评估dynamicString完全的前期。您可能需要偷懒,以便及时对其进行评估,如下所示:

For<TestDAL>().Use<TestDAL>().Ctor<string>("connectionString").Is(() => {
    string dynString = null;

    HttpContext.Current.GetOwinContext()
        .Environment.TryGetValue("dynamicString", out object dynString); 

    return dynString;
});
于 2017-03-29T10:53:36.720 回答