gpt4 book ai didi

c# - 我可以使用 OwinContext 在单个 ASP.NET MVC5 应用程序之间共享数据吗?

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:26 25 4
gpt4 key购买 nike

我希望在所有应用程序请求之间共享特定的静态数据(尤其是站点菜单 DTO)。在过去的 system.web.dll 时代,这会将 Application_Start 中的数据添加到 HttpContent.Current.Application[] 字典中。我敢肯定,使用 Owin/OwinContext 可以实现非常相似,但找不到添加/访问它的简单方法。谁能帮忙?

最佳答案

Microsoft.AspNet.Identity.Owin 库包含类 OwinContextExtensions,它具有以下方法:

public static T Get<T>(this IOwinContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
return context.Get<T>(OwinContextExtensions.GetKey(typeof(T)));
}


public static T Set<T>(this IOwinContext context, T value)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
return context.Set<T>(OwinContextExtensions.GetKey(typeof(T)), value);
}

我很确定您可以使用它们来设置和获取存储在 OwinContext 中的值。请注意,存储在上下文中的对象的键名称是类型,因此对于集合,您应该为唯一名称创建一个具体类型:

public MyDictionary : Dictionary<string, int>
{
}

var myDic = new MyDictionary();

var context = HttpContext.GetOwinContext();

context.Set(myDic);

var myDic2 = context.Get<MyDictionary>();

关于c# - 我可以使用 OwinContext 在单个 ASP.NET MVC5 应用程序之间共享数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26510658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com