facebook c#5 - FacebookWebClient抛出Typeinitializer异常

时间:2011-07-14 10:24:18

标签: facebook-c#-sdk

我的问题如下:我刚刚使用Facebook C#API 4迁移 - > v.5.0.50(截至2011-07-11),因此我不得不改变一些代码行并开始使用FacebookWebClient而不是前FacebookApp。我使用这个类来导航Graph API。我使用WCF服务中的功能,该服务仅接收access_token作为参数,并将其传递给FacebookWebClient。

在v.4下一切正常工作,但是在替换和重新引用dll之后,应用程序开始抛出异常“'Facebook.FacebookApplication'的类型初始化程序引发异常。”< / p>


异常堆栈跟踪是:

在Facebook.FacebookClient..ctor(String accessToken)的e:\ Prabir \ Documents \ Projects \ facebooksdk \ v5.0.50 \ Source \ Facebook \ FacebookClient.cs:第48行在Facebook.Web.FacebookWebClient..ctor(字符串accessToken)在e:\ Prabir \ Documents \ Projects \ facebooksdk \ v5.0.50 \ Source \ Facebook.Web \ FacebookWebClient.cs:第36行Korito.MyKorito.FetchKorito(String token)at Korito.MyKorito.KoritoAPI(String token) )System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin中的System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,对象[]输入,对象[]和输出)处的SyncInvokeKoritoAPI(Object,Object [],Object []) (MessageRpc&amp; rpc)System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)< / p>


我引用了(仅)以下dll-s:

  • facebook.dll
  • Facebook.Web.dll中
  • facebook.web.mvc.dll

代码段如下:

var client = new Facebook.Web.FacebookWebClient(“/ * auth_token_received_as_a_parameter * /”); dynamic me = client.Get(“/ me”);

我使用.net 4框架。

非常感谢任何帮助! 干杯, 阿洛伊斯

1 个答案:

答案 0 :(得分:0)

当您希望SDK使用已签名的请求或cookie自动添加访问令牌时,通常会使用FacebookWebClient。

var fb = new FacebookWebClient();

因为您将访问令牌作为参数获取。你只能引用Facebook.dll而不是使用FacebookClient。

var client = new FacebookClient("access_token");

你可以继续使用已转移到v5.x中的Facebook.Web.dll的FacebookApp(你可能不会在intellisense中看到它,因为它被隐藏但它仍然有效,因为我们试图维持与v4的最大兼容性。注意:但它已被标记为已过时,这使用户可以轻松地将其应用程序从v4迁移到v5。)