未能从程序集加载类型“Google.Apis.Requests.IErrorResponseHand

2019-10-19 03:15发布

我在.NET谷歌验证API日历。 我从这个链接复制代码: 刷新令牌到期时间谷歌日历未能从程序集加载类型“Google.Apis.Requests.IErrorResponseHandler“Google.Apis,版本= 1.6.0.16897,文化=中立,公钥=空”

这里是我的代码:

private CalendarService CreateService(string token)
    {
        //KeyValuePair<string, string> credentials = Ninject.Web.Common.Get3LOCredentials();
        var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, this.clientID, this.ClientSecret);
        //provider.ClientIdentifier = clientID;
        //provider.ClientSecret = clientSecret;
        var auth = new Google.Apis.Authentication.OAuth2.OAuth2Authenticator<NativeApplicationClient>(provider, (p) => GetAuthorization(provider, token));
        CalendarService service = new CalendarService(new BaseClientService.Initializer()
        {
            Authenticator = auth,
            ApiKey = ConfigurationManager.AppSettings[this.APIkey].ToString(),
            GZipEnabled = false
        });
        return service;
    }

    private static IAuthorizationState GetAuthorization(NativeApplicationClient arg, String Refreshtoken)
    {
        IAuthorizationState state = new AuthorizationState(new[] { CalendarService.Scopes.Calendar.GetStringValue() });
        state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
        state.RefreshToken = Refreshtoken;
        return state;
    }

Answer 1:

你使用软件包管理器安装API?

而且起,你要申请访问每次还是要保存refreshtoken这样就可以得到一个未过期的访问令牌,当你做以下电话?



Answer 2:

我通过卸载和重新安装NuGet包“google.apis.auth”解决了这个问题。 这是因为安装了多个版本。

  1. 右键单击项目的“参考”菜单上。 手动删除对google.apis.auth相关的所有包引用。

  2. 然后,选择“管理NuGet包”,搜索“google.apis.auth”,并卸载“google.apis.auth”。

  3. 重新安装相同的包。

  4. 清理并重建

如果它不工作,你可以尝试重新安装“google.apis”为好。



文章来源: Could not load type 'Google.Apis.Requests.IErrorResponseHandler' from assembly 'Google.Apis'