【发布时间】:2020-08-19 22:47:19
【问题描述】:
有人可以建议如何将此方法返回的输出存储为可用的字符串或字符格式,以便在不同的方法中用作变量吗?我尝试过按值、按引用、数组格式、char 格式实现、字符串格式实现、Char.ToString()、String.ToCharArray() 等方式传递。
我定义了一个计时器让 accessTokenRequest() 以设定的时间间隔执行:
protected void accessTimer_Tick(object sender, EventArgs e)
{
var test = randomCharGen();
//accessLiteral.Text = randomCharGen(); //this generates automated new values upon each refresh interval as what is stored in the variable
accessLiteral.Text = test;
}
<asp:Timer ID="accessTimer" runat="server" Interval="10000" OnTick="accessTimer_Tick"></asp:Timer>
<asp:UpdatePanel ID="accessUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Literal ID="accessLiteral" runat="server"></asp:Literal>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="accessTimer" EventName="tick" />
</Triggers>
</asp:UpdatePanel>
此响应是我试图存储以供以后在 Web.UI.Timer 函数中使用的内容:
private static string accessTokenRequest()
{
var client = new RestClient("'api'");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "refresh_token");
request.AddParameter("refresh_token", "'token'");
request.AddParameter("client_id", "'id'");
IRestResponse response = client.Execute(request);
dynamic access = JsonConvert.DeserializeObject(response.Content);
string[] accessTokenArray = new string[1];
accessTokenArray[0] = access.access_token.ToString();
return accessTokenArray[0];
}
我可以解析 JSON 响应以获取所需的字段,但是,我无法找到一种方法或创建结果,我可以将目标值存储在一个变量中以供以后使用,而无需调用该方法再次。由于没有实现数据库来存储响应然后从那里消费(不需要),我不太确定我可能还有什么其他选择。任何建议表示赞赏。
【问题讨论】:
-
MemoryCache是我建议开始的地方。或static字段。 -
这是一个 XY 问题。请将问题表述为您遇到的问题,而不是您所拥有的解决方案的问题。 xyproblem.info
-
一个 cookie。这是您需要为不同方法/页面存储的短期变量的 HTTP 标准