【发布时间】:2017-09-28 20:08:13
【问题描述】:
我不太明白如何调整 this approach 以生成动态计时器 observables。
具体来说,我有两种方法:
GetAccessToken()RefreshAccessToken()
两者都返回OAuth2AccessTokenResponse:
public class OAuth2AccessTokenResponse
{
private string tokenType;
private string accessToken;
private int expiresIn;
private string refreshToken;
private int refreshtokenExpiresIn;
}
所以,我需要在 expiresIn 属性值(以秒为单位)过去之前刷新当前的访问令牌。
我尝试了我的方法,但我无法获得任何有意义的东西:
this.accessTokenObservable = Observable
.Generate(
this.GetAccessToken(),
resp => true, //?????
resp => resp, //?????
resp => resp, //?????
resp => TimeSpan.FromSeconds(this.RefreshAccessToken().ExpiresIn) //?????
);
依次:
response = this.GetAccessToken()-
response.ExpiresIn到期之前 ->response = this.RefreshAccessToken() - 转到
2.
GetAccessToken 和RefreshAccessToken 代码:
internal OAuth2AccessTokenResponse GetAccessToken()
{
return new OAuth2AccessTokenResponse() {ExpiresIn = new Math.Random().Next(3,11)};
}
internal OAuth2AccessTokenResponse RefreshAccessToken()
{
return new OAuth2AccessTokenResponse() {ExpiresIn = new Math.Random().Next(3,11)};
}
【问题讨论】:
-
你能提供一个minimal reproducible example吗?我需要能够编写适用于
GetAccessToken和RefreshAccessToken的代码,所以我需要所有类型。 -
您是说拥有
GetAccessToken和RefreshAccessToken代码对您来说是正确的吗? -
我的意思是我需要能够复制、粘贴和编译您的代码,这样我才能使用它。现在,当我复制您发布的内容时,我会遇到很多错误。
IRestClient、RestSharp、this.settings、IRestRequest、AccessTokenRequest、IRestResponse<>、RefreshTokenRequest和this.CheckResponse都是未定义的。您应该让我们轻松回答您的问题。 minimal reproducible example 意味着我有可以编译的代码。 -
抱歉,我已尝试简化
GetAccessToken和RefreshAccessToken方法。 -
您很难将答案放在一起。您的代码仍然无法编译。
标签: c# system.reactive