Facebook c# sdk facebook c 5-FacebookWebClient引发Typeinitializer异常

Facebook c# sdk facebook c 5-FacebookWebClient引发Typeinitializer异常,facebook-c#-sdk,Facebook C# Sdk,我的问题如下:我刚从使用facebookapi4->v迁移过来。5.0.50从2011年7月11日起,我不得不更改一些代码行,并开始使用FacebookWebClient,而不是以前的FacebookApp。我使用这个类来导航Graph API。我使用WCF服务中的功能,该服务只接收access_令牌作为参数,并将其传递给FacebookWebClient 在v.4下,一切正常,但是在替换并重新引用DLL之后,应用程序开始抛出异常“Facebook.FacebookApplication”的类型

我的问题如下:我刚从使用facebookapi4->v迁移过来。5.0.50从2011年7月11日起,我不得不更改一些代码行,并开始使用FacebookWebClient,而不是以前的FacebookApp。我使用这个类来导航Graph API。我使用WCF服务中的功能,该服务只接收access_令牌作为参数,并将其传递给FacebookWebClient

在v.4下,一切正常,但是在替换并重新引用DLL之后,应用程序开始抛出异常“Facebook.FacebookApplication”的类型初始值设定项抛出异常

异常堆栈跟踪为:

在Facebook.FacebookClient..ctorString accessToken中的e:\Prabir\Documents\Projects\FacebookDK\v5.0.50\Source\Facebook\FacebookClient.cs:Facebook.Web.FacebookWebClient..ctorString accessToken中的e:\Prabir\Documents\Projects\FacebookDK\v5.0.50\Source\FacebookWebClient.cs:Korito.MyKorito.FetchKoritoString令牌中的第36行位于SyncInvokeKoritoAPIObject的Korito.MyKorito.KoritoAPIString标记处,对象[],对象[]位于System.ServiceModel.Dispatcher.SyncMethodInvoker.InvokeObject实例处,对象[]输入,对象[]&System.ServiceModel.Dispatcher.DispatcherOperationRuntime.InvokeBegingInMessageRPC和rpc在System.ServiceModel.Dispatcher.ImmutableDispatcherRuntime.ProcessMessage5MessageRpc和rpc在System.ServiceModel.Dispatcher.ImmutableDispatcherRuntime.ProcessMessage31MessageRpc和rpc在System.ServiceModel.Dispatcher.MessageRpc.ProcessBoolean上的输出等操作上下文集

我仅引用了以下dll-s:

facebook.dll facebook.web.dll facebook.web.mvc.dll 代码段如下:

var client=new Facebook.Web.FacebookWebClient/*auth_token_received_as_a_参数*/; 动态me=client.Get/me

我使用.NET4框架

非常感谢您的帮助! 干杯
当您希望SDK使用已签名的请求或cookie自动添加访问令牌时,通常使用Alois

FacebookWebClient

var fb = new FacebookWebClient();
因为您将访问令牌作为参数获取。您可以只引用Facebook.dll,而使用Facebook客户端

var client = new FacebookClient("access_token");

您可以继续使用已在v5.x中移动到Facebook.Web.dll的FacebookApp。您可能无法在intellisense中看到它,因为它是隐藏的,但它仍然可以工作,因为我们试图保持与v4的最大兼容性。注意:但它已被标记为过时,这允许用户轻松地将其应用程序从v4迁移到v5。

感谢prabir的回复,也祝贺您的出色工作。我试过FacebookWebClient和FacebookClient,它们的行为都是一样的。此外,FacebookApp在这种情况下不再工作。我在一个控制台应用程序中重现了同样的情况,起初我只从net40客户端导入了您的dll facebook.dll,而从net40客户端导入了facebook.web.dll,但没有成功。经过一些研究后,我发现我需要包括Newtonsoft.Json,我已经这样做了,控制台应用现在可以正常工作了。但这对WCF应用程序不起作用。我想问题出在iis?您使用的是哪个版本?从5.0.10开始,我们删除了对Newtonsoft.Json的依赖,因为我们使用了一个新的轻量级内置Json库,名为“我使用了5.0.50版”。我无法解决WCF中的问题,所以我回到v4。v5与我在同一台机器上使用的控制台应用程序配合使用非常出色,但在WCF服务中使用时,没有明显的原因会失败。您是否可以使用WCF将您的项目上传到某个地方,并将其发布在codeplex讨论论坛中。我会亲自看一看。