开发者

error : Unable to perform runtime binding (when location/hometown/any setting is not set in facebook profile)

I am facing an error

Cannot perform runtime binding on a null reference

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot perform runtime binding on a null reference

Source Error:

Line 27: lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy")); Line 28: lblHometown.Text = (myInfo.hometown.name == null ? string.Empty : myInfo.hometown.name); Line 29: lblLocation.Text = (myInfo.location.name == null ? string.Empty : myInfo.location.name); Line 30: pnlHello.Visible = true; Line 31: }

Here is my code :

var fb = new FacebookWebClient();
    dynamic myInfo = fb.Get("me");
    lblName.Text = myInfo.name;
    imgProfile.ImageUrl = "https://graph.f开发者_运维百科acebook.com/" + myInfo.id + "/picture";
    lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy"));
    lblHometown.Text = (myInfo.hometown.name == null ? string.Empty : myInfo.hometown.name);
    lblLocation.Text = (myInfo.location.name == null ? string.Empty : myInfo.location.name);
    pnlHello.Visible = true;


First check for myInfo.location being null:

lblLocation.Text = myInfo.location == null ? "" : myInfo.location.name ?? "";

(And likewise for similar members.)

It's a bit of a pain, admittedly, but basically you need to account for anything that might be null, to make sure you don't try to dereference it.


I changed my code as :

var fb = new FacebookWebClient();
dynamic myInfo = fb.Get("me");
lblName.Text = myInfo.name;
imgProfile.ImageUrl = "https://graph.facebook.com/" + myInfo.id + "/picture";
lblBirthday.Text = (myInfo.birthday == null ? string.Empty : DateTime.Parse(myInfo.birthday).ToString("dd-MMM-yy"));
lblHometown.Text = (myInfo.hometown == null ? string.Empty : myInfo.hometown.name);
lblLocation.Text = (myInfo.location == null ? string.Empty : myInfo.location.name);
pnlHello.Visible = true;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜