使用 Facebook OAuth 的运行时绑定问题
Runtime binding issue using Facebook OAuth
我使用 Facebook OAuth
实现了一个登录示例,但在输入登录凭据后遇到了问题。
被拉入 TBInfos
文本框的其中一个字段导致 null reference
由于用户可能没有其中一个字段的值。
我通常会使用类似这样的方法检查 null,s == null || s == String.Empty;
但我不确定如何将它应用到下面的相关代码中。
我的问题是,如何对拉入文本框中的每个字段执行 null 或空检查?
完整抛出的错误如下:
An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll but was not handled in user code
Additional information: Cannot perform runtime binding on a null reference
//create instance of FB client
private FacebookClient fbC;
这是从 Facebook 获取值的相关代码:
public InfoWindow(FacebookClient FBClient)
{
InitializeComponent();
fbC = FBClient;
dynamic me = FBClient.Get("Me");
TBInfos.Text = "Name : " + me.name.ToString() + "\n\r"
+ "Gender : " + me.gender.ToString() + "\n\r"
+ "Link : " + me.link.ToString() + "\n\r"
+ "Quote : " + me.quotes.ToString() + "\n\r"
+ "Sports : ";
foreach (var item in me.sports)
{
TBInfos.Text += item.name + " , ";
}
TBInfos.Text += "\n\r" + "Favorite Athletes : ";
foreach (var item in me.favorite_athletes)
{
TBInfos.Text += item.name + " , ";
}
TBInfos.Text += "\n\r" + "Languages : ";
foreach (var item in me.languages)
{
TBInfos.Text += item.name + " , ";
}
}
我通过为每个被拉入的字段添加空检查来解决上述空指针异常。
下面修复了它:(me.gender ?? (object)string.Empty).ToString()
问题是对于某些 Facebook 个人资料,一个或多个字段可能 blank/null,这就是导致异常的原因。
我使用 Facebook OAuth
实现了一个登录示例,但在输入登录凭据后遇到了问题。
被拉入 TBInfos
文本框的其中一个字段导致 null reference
由于用户可能没有其中一个字段的值。
我通常会使用类似这样的方法检查 null,s == null || s == String.Empty;
但我不确定如何将它应用到下面的相关代码中。
我的问题是,如何对拉入文本框中的每个字段执行 null 或空检查?
完整抛出的错误如下:
An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll but was not handled in user code
Additional information: Cannot perform runtime binding on a null reference
//create instance of FB client
private FacebookClient fbC;
这是从 Facebook 获取值的相关代码:
public InfoWindow(FacebookClient FBClient)
{
InitializeComponent();
fbC = FBClient;
dynamic me = FBClient.Get("Me");
TBInfos.Text = "Name : " + me.name.ToString() + "\n\r"
+ "Gender : " + me.gender.ToString() + "\n\r"
+ "Link : " + me.link.ToString() + "\n\r"
+ "Quote : " + me.quotes.ToString() + "\n\r"
+ "Sports : ";
foreach (var item in me.sports)
{
TBInfos.Text += item.name + " , ";
}
TBInfos.Text += "\n\r" + "Favorite Athletes : ";
foreach (var item in me.favorite_athletes)
{
TBInfos.Text += item.name + " , ";
}
TBInfos.Text += "\n\r" + "Languages : ";
foreach (var item in me.languages)
{
TBInfos.Text += item.name + " , ";
}
}
我通过为每个被拉入的字段添加空检查来解决上述空指针异常。
下面修复了它:(me.gender ?? (object)string.Empty).ToString()
问题是对于某些 Facebook 个人资料,一个或多个字段可能 blank/null,这就是导致异常的原因。