【问题标题】:calling FacebookClient.PostAsync from silverlight canvas app generates MethodAccessException从 silverlight 画布应用程序调用 FacebookClient.PostAsync 会生成 MethodAccessException
【发布时间】:2012-10-11 04:53:39
【问题描述】:

我从一个 silverlight 应用程序中调用它:

// docs at: http://developers.facebook.com/docs/reference/api/post
            var client = new FacebookClient(_token);
            dynamic parameters = new ExpandoObject();
            parameters.message = title;
            parameters.link = linkUrl;
            parameters.picture = imageUrl;
            parameters.name = name;
            parameters.caption = promptTitle;
            parameters.description = description;
            parameters.privacy = new
            {
                value = "ALL_FRIENDS",
            };
            client.PostAsync("me/feed", parameters);

这会产生以下错误: 尝试通过安全透明方法 'SimpleJson.Reflection.CacheResolver.CreateDynamicMethod(System.String, System.Type, System.Type[], System.Type)' 访问安全关键方法 'System.Reflection.Emit.DynamicMethod..ctor( System.String, System.Type, System.Type[], System.Type, Boolean)' 失败。

-- 更多:--

{System.MethodAccessException: 尝试通过安全透明方法“SimpleJson.Reflection.CacheResolver.CreateDynamicMethod(System.String, System.Type, System.Type[], System.Type)”访问安全关键方法“System.Reflection” .Emit.DynamicMethod..ctor(System.String, System.Type, System.Type[], System.Type, Boolean)' 失败。 在 SimpleJson.Reflection.CacheResolver.CreateDynamicMethod(字符串名称,类型 returnType,类型 [] 参数类型,类型所有者) 在 SimpleJson.Reflection.CacheResolver.CreateGetHandler(PropertyInfo propertyInfo) 在 SimpleJson.Reflection.CacheResolver.MemberMap..ctor(PropertyInfo propertyInfo) 在 SimpleJson.PocoJsonSerializerStrategy.BuildMap(类型类型,SafeDictionary2 memberMaps) at SimpleJson.DataContractJsonSerializerStrategy.BuildMap(Type type, SafeDictionary2 映射) 在 SimpleJson.Reflection.CacheResolver.LoadMaps(类型类型) 在 SimpleJson.PocoJsonSerializerStrategy.TrySerializeUnknownTypes(对象输入,对象和输出) 在 SimpleJson.PocoJsonSerializerStrategy.SerializeNonPrimitiveObject(对象输入,对象和输出) 在 SimpleJson.SimpleJson.SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, Object value, StringBuilder builder) 在 SimpleJson.SimpleJson.SerializeObject(对象 json,IJsonSerializerStrategy jsonSerializerStrategy) 在 SimpleJson.SimpleJson.SerializeObject(对象 json) 在 Facebook.JsonSerializer.SimpleJsonSerializer.SerializeObject(对象 obj) 在 Facebook.FacebookUtils.ToJsonQueryString(IDictionary2 dictionary) at Facebook.FacebookClient.BuildRequestData(Uri uri, IDictionary2 参数,HttpMethod httpMethod,Uri& requestUrl,String& contentType) 在 Facebook.FacebookClient.BuildRequestData(字符串路径,IDictionary2 parameters, HttpMethod method, Uri& requestUrl, String& contentType) at Facebook.FacebookClient.ApiAsync(String path, IDictionary2 参数,HttpMethod httpMethod,对象 userToken) 在 Facebook.FacebookClient.PostAsync(字符串路径,IDictionary2 parameters, Object userToken) at Facebook.FacebookClient.PostAsync(String path, IDictionary2 参数) 在 CallSite.Target(闭包,CallSite,FacebookClient,字符串,对象) 在 System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid3[T0,T1,T2](CallSite 站点,T0 arg0,T1 arg1,T2 arg2)

【问题讨论】:

  • 我通过使用 var parameters = new Dictionary() 而不是动态来实现它。想知道是否有办法使用动态来代替(对我来说看起来更干净)。
  • 您使用的是哪个版本?使用 v5.0.25 RTW 时是否获得相同的效果?如果您遇到相同的错误,您可以在 codeplex 中提交错误。
  • @prabir,错误已提交 ;-) 谢谢!

标签: silverlight-4.0 facebook-c#-sdk


【解决方案1】:

当时是 sdk 的一个错误。从那以后就被修复了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2011-10-09
    • 2021-01-16
    相关资源
    最近更新 更多