2011-07-14 44 views
0

我的問題如下:我剛從使用Facebook C#API 4 - > v。5.0.50(截至2011-07-11)遷移,因此我不得不改變一些代碼行,並開始使用FacebookWebClient而不是以前的FacebookApp。我使用這個類來導航Graph API。我使用WCF服務中的功能,該服務僅接收access_token作爲參數,並將其傳遞給FacebookWebClient。facebook c#5 - FacebookWebClient引發Typeinitializer-異常

一切工作在第4節就好了,但是更換和重新引用的應用開始拋出異常的dll文件後「爲‘Facebook.FacebookApplication’的類型初始值引發異常。


的異常堆棧跟蹤是:

在Facebook.FacebookClient..ctor(字符串的accessToken)在E:\ Prabir \文件\項目\ facebooksdk \ v5.0.50 \源\實\ FacebookClient.cs:線48在在e:\ Prabir \ Documents \ Proj中的Facebook.Web.FacebookWebClient..ctor(String accessToken) ects \ facebooksdk \ v5.0.50 \ Source \ Facebook.Web \ FacebookWebClient.cs:Korito.MyKorito.FetchKorito(String token)的第36行Korito.MyKorito.KoritoAPI(String token)SyncInvokeKoritoAPI(Object,Object [],Object (System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc & rpc))在System.ServiceModel.Dispatcher上的System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object [] inputs,Object [] & outputs) ImmutableDispatchRuntime.ProcessMessage5(MessageRpc & RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc & RPC)在System.ServiceModel.Dispatcher.MessageRpc.Process(布爾isOperationContextSet)


我已引用(僅)以下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框架。

任何援助非常感謝! 歡呼聲, Alois

回答

0

FacebookWebClient通常用於您希望SDK使用簽名請求或cookie自動添加訪問令牌。

var fb = new FacebookWebClient(); 

因爲你所得到的訪問令牌作爲參數。你可以只參考Facebook.dll並使用FacebookClient。

var client = new FacebookClient("access_token"); 

您可以繼續使用該被移動到Facebook.Web.dll中的V5.x的FacebookApp(你可能看不到它在智能感知,因爲它是隱藏的,但它仍然有效,因爲我們試圖保持作爲最大與v4兼容。請注意:但它已被標記爲過時,這允許用戶輕鬆地將他們的應用程序從v4遷移到v5。)

+0

謝謝prabir您的回覆,並且祝賀您的出色工作。我已經嘗試了FacebookWebClient以及FacebookClient,都表現相同。此外,FacebookApp不再適用於這種情況。 我在控制檯應用程序中複製了同一個案例,首先我只導入了你的dll(來自net40客戶端的facebook.dll和來自net40的facebook.web.dll),這些都不起作用。經過一番研究,我發現我需要包含Newtonsoft.Json,而我所做的和控制檯應用程序現在可以正常工作。但這對WCF應用程序無效。我想這個問題是在iis嗎? – Alois

+0

你正在使用哪個版本?從5.0.10開始,我們已經移除了對Newtonsoft.Json的依賴,因爲我們使用了一個新的輕量級內置json庫,名爲http://simplejson.codeplex.com – prabir

+0

我使用了版本5.0.50。我無法解決WCF中的問題,所以我回到了第4版。 v5與我在同一臺機器上使用的控制檯應用程序出色地工作,但在WCF服務中使用時沒有明顯的原因失敗。 – Alois