Tip: Windows Phone - 匿名类型和 MethodAccessException

一个wp7应用引用了Facebook csharp sdk 的dll, 传给FacebookClient的方法中使用了一个匿名类型,结果抛出MethodAccessException

使用匿名类型:
fb.PostAsync("oauth/access_token",new
                                                          {
                                                              client_id = AppId,
                                                              client_secret = AppSecret,
                                                              redirect_uri = RedirectUri,
                                                              code = oauthResult.Code
                                                          });
异常代码:

 foreach (var propertyInfo in parameters.GetType().GetProperties())
                {
                    if (!propertyInfo.CanRead) continue;
                    dictionary[propertyInfo.Name] = propertyInfo.GetValue(parameters, null);
                }

异常原因: 匿名类型被编译为internal成员,跨程序集访问时会遇到此异常。

解决办法:可在使用匿名类型的程序集AssemblyInfo.cs中使用如下特性:

//make anonymous type in this assembly can be accessible by Facebook.dll
[assemblyInternalsVisibleTo("Facebook")]

参考: 

http://stackoverflow.com/questions/8273399/anonymous-types-and-get-accessors-on-wp7-1

http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值