gpt4 book ai didi

c# - 将缓存项转换为特定对象类型以供 web 方法返回

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:17 24 4
gpt4 key购买 nike

我已经成功地在 Web 服务中缓存了一个大数据项,但是如果我想稍后返回该缓存项而不是再次运行冗长的查询,我该如何将通用缓存项转换为我自己设计的对象?

例如

HttpContext.Current.Cache.Insert("cItem", [MyItem]));

然后

return HttpContext.Current.Cache["cItem"];

将在 Visual Studio 中显示错误,因为我无法将类型“object”转换为我自己的类型。任何指针表示赞赏谢谢

最佳答案

Cache[string] returns an object .虽然 MyItem 的任何实例都可以隐式转换为 object,但反过来显然不是这样。

因此,如果您的方法的返回类型是 MyItem,那么您需要转换缓存项:

public MyItem MyMethod()
{
return (MyItem)HttpContext.Current.Cache["cItem"];
}

这是在从缓存中检索时完成的,而不是在存储时完成的。

如果该项目不是 预期类型的​​可能性,您必须以某种方式处理该情况。如果发生这种情况,上面的代码将抛出一个 InvalidCastException。如果您只想在这种情况下返回 null,您可以试试这个:

public MyItem MyMethod()
{
return HttpContext.Current.Cache["cItem"] as MyItem;
}

关于c# - 将缓存项转换为特定对象类型以供 web 方法返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260309/

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