空字符串异常

时间:2016-11-02 12:04:15

标签: c# asp.net facebook-access-token facebook-insights

在我提出问题之前,我需要提一下,我在网站上查找以解决问题,但我什么也没找到。

这是我的功能:

    public string GetAccessToken(int agencyId)
    {
        string retrunString = null;
        Token fbToken = tokenMgr.Get(agencyId, "FacebookInsights");
        if (String.IsNullOrWhiteSpace(fbToken.AccessToken))  **
            return retrunString;
        else
            return fbToken.AccessToken;
    }

当Token是包含String字段名称的对象时:AccessToken。

当我调试代码并使用' **'当fbToken.AccessToken为NULL时,我得到一个异常" 对象引用未设置为对象的实例。"

当我在其他线程中查找时,他们建议使用 String.IsNullOrWhiteSpace ,但它没有解决问题而且我一直收到错误。

我非常感谢任何帮助,提前谢谢!

3 个答案:

答案 0 :(得分:2)

fbToken为空,而不是fbToken.AccessToken。使用这样的东西:

if ( fbToken == null || String.IsNullOrWhiteSpace(fbToken.AccessToken) )

新的C#6.0允许您执行此操作null propagation

if ( String.IsNullOrWhiteSpace(fbToken?.AccessToken) )

答案 1 :(得分:1)

像这样写。查看Null-conditional Operators

if(String.IsNullOrWhiteSpace(fbToken?.AccessToken))
{
    //your stuff
}

答案 2 :(得分:0)

您必须验证对象fbToken,而不是其成员AccessToken

public string GetAccessToken(int agencyId)
{
    var fbToken = tokenMgr.Get(agencyId, "FacebookInsights");  
    return (fbToken == null) ? null : fbToken.AccessToken;
}