c#-ASP.Net网页中的强类型全局数据
作者:互联网
在ASP.Net Web Pages中存储强类型的全局数据的最佳实践是什么,这对于每个请求都是唯一的?基本上我需要WebPageContext.Current.PageData但要强类型化.
到目前为止,我想到的是这样的:
public sealed class GlobalData
{
public static GlobalData Current
{
get
{
if (WebPageContext.Current.PageData["GlobalData"] == null
|| WebPageContext.Current.PageData["GlobalData"].GetType() != typeof(GlobalData))
{
WebPageContext.Current.PageData["GlobalData"] = new GlobalData();
}
return WebPageContext.Current.PageData["GlobalData"];
}
}
public string SomeData { get; set; }
}
这样,我可以简单地在每页上使用GlobalData.Current.SomeData访问数据.还是有更好的解决方案?
解决方法:
那是一个很好的方法.我会简化一下:
public sealed class GlobalData
{
public static GlobalData Current
{
get
{
// soft cast using "as" which will return null if the type is not correct
var globalData = WebPageContext.Current.PageData["GlobalData"] as GlobalData;
if (globalData == null)
{
// Need to instantiate
globalData = new GlobalData();
WebPageContext.Current.PageData["GlobalData"] = globalData;
}
return globalData;
}
}
public string SomeData { get; set; }
}
标签:webmatrix,asp-net-webpages,asp-net,c 来源: https://codeday.me/bug/20191123/2065744.html