2

我有这个测试应用程序,用于 twitterizer。

var temp = TwitterViewModel.TokenStore;

       string token = HttpContext.Current.Request.QueryString["oauth_token"];
       string verifier = HttpContext.Current.Request.QueryString["oauth_verifier"];
       string ConsumerKey = WebConfigurationManager.AppSettings["twitterApiKey"];
       string ConsumerSecret = WebConfigurationManager.AppSettings["twitterConsumerSecret"];

       OAuthTokenResponse TwitterResponse = OAuthUtility.GetAccessToken(ConsumerKey, ConsumerSecret, token, verifier);

       var Tokens = new OAuthTokens();

       foreach (KeyValuePair<string, OAuthTokens> Token in TwitterViewModel.TokenStore)
           if (Token.Key == UserSession.GetSession().Login)
               Tokens = Token.Value;

       if (TwitterResponse != null)
       {
           Tokens.AccessToken = TwitterResponse.Token;
           Tokens.AccessTokenSecret = TwitterResponse.TokenSecret;
       }

       TwitterViewModel.TokenStore.Remove(UserSession.GetSession().Login);

       TwitterResponse<TwitterStatus> Response = TwitterStatus.Update(Tokens, "testmsg");

       ResponseErrorMessage = Response.ErrorMessage;
       ResponseResult = Response.Result.ToString();
       ResponseContent = Response.Content;

并且似乎正在工作,直到它到达这一行:“TwitterResponse Response = TwitterStatus.Update(Tokens, "testmsg");" 推文被放在推特“墙”上,我收到一条错误消息:“无法加载文件或程序集 'Newtonsoft.Json, Version=3.5.0.0...”。我检查了我的包裹,我有一个 newtonsoft.json 4.0.1。如果可能的话,我真的不想将该 newtonsoft 软件包从 4.0 降级到 3.5。

如果有人知道我该如何解决这个问题,那就太好了!干杯。

4

2 回答 2

5

你可以

  1. 添加一个<bindingRedirect>到你的 app.config 以指定 Twitterizer 应该使用新版本(假设 API 没有改变)

  2. 获取 Twitterizer 源并针对 Json 4.0.1 自己重建它。

于 2011-04-05T13:10:26.730 回答
1

对于 Rup 提供的选项 1,我使用以下内容更新了 web.config:

...

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="3.5.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>
</assemblyBinding>

   </runtime>
</configuration>

它解决了这个问题。

于 2011-05-30T15:27:08.817 回答