C# WP7应用程序,MethodAccessException在WP7设备上运行,但在WP8设备上运行良好

C# WP7应用程序,MethodAccessException在WP7设备上运行,但在WP8设备上运行良好,c#,windows-phone-7,windows-phone-8,facebook-c#-sdk,C#,Windows Phone 7,Windows Phone 8,Facebook C# Sdk,正如标题所说,我有一个wp7应用程序,当在wp7设备(lumia 800)上部署和调试时,我在使用Facbook c#SDK时会得到MethodAccessException,但在WP8设备(lumia 920)上部署和调试时效果很好。这里是错误发生的地方 private Uri GetURLLogin() { var fb = FacebookClient(); return fb.GetLoginUrl( new { client_id

正如标题所说,我有一个wp7应用程序,当在wp7设备(lumia 800)上部署和调试时,我在使用Facbook c#SDK时会得到MethodAccessException,但在WP8设备(lumia 920)上部署和调试时效果很好。这里是错误发生的地方

private Uri GetURLLogin()
{     
  var fb = FacebookClient();
  return fb.GetLoginUrl(
       new {
            client_id = "blahblah",
            redirect_uri = "http://www.facebook.com/connect/login_success.html",
            response_type = "token",
            display = "popup",
            scope = "user_birthday, email"
           });   // Error occurs here
}
试试这个

   private Uri GetFacebookLoginUrl(string appId, string extendedPermissions)
    {
        var fb = FacebookClient();
        var parameters = new Dictionary<string, object>();
        parameters["client_id"] = appId;
        parameters["redirect_uri"] = "https://www.facebook.com/connect/login_success.html";
        parameters["response_type"] = "token";
        parameters["display"] = "touch";

        // add the 'scope' only if we have extendedPermissions.
        if (!string.IsNullOrEmpty(extendedPermissions))
        {
            // A comma-delimited list of permissions
            parameters["scope"] = extendedPermissions;
        }

        return _fb.GetLoginUrl(parameters);

    }
你的应用程序密钥由Facebook生成,试试这个

   private Uri GetFacebookLoginUrl(string appId, string extendedPermissions)
    {
        var fb = FacebookClient();
        var parameters = new Dictionary<string, object>();
        parameters["client_id"] = appId;
        parameters["redirect_uri"] = "https://www.facebook.com/connect/login_success.html";
        parameters["response_type"] = "token";
        parameters["display"] = "touch";

        // add the 'scope' only if we have extendedPermissions.
        if (!string.IsNullOrEmpty(extendedPermissions))
        {
            // A comma-delimited list of permissions
            parameters["scope"] = extendedPermissions;
        }

        return _fb.GetLoginUrl(parameters);

    }

由于安全原因,Facebook.dll无法访问匿名对象属性,您的应用程序密钥由Facebook生成

尝试添加


[大会:InternalsVisibleTo(“Facebook”)]


由于安全原因,Facebook.dll无法访问匿名对象属性,FAQ中提到了这一点

尝试添加


[大会:InternalsVisibleTo(“Facebook”)]


这在常见问题解答中提到,请使用您代码中的
词典
,但为什么我的代码在Windows Phone 8设备上可以正常工作?Windows Phone 8代码与Windows Phone 7编码不同。有关更多信息,请仅检查Windows Phone 8的此链接,但它正在运行WP7应用程序?使用您代码中的
词典
,但为什么我的代码在Windows Phone 8设备上工作正常?Windows Phone 8代码与Windows Phone 7编码不同。有关更多信息,请仅查看Windows Phone 8的此链接,但它正在运行WP7应用程序?谢谢!这解决了问题,并解释了为什么我的代码会导致错误谢谢!这解决了问题,并解释了我的代码导致错误的原因