2016-11-02 2 views
-1

Bevor ich meine Frage stelle, muss ich erwähnen, dass ich in der Website nachgeschlagen habe, um das Problem zu lösen, aber ich habe nichts gefunden.Null String Ausnahme

Hier ist meine Funktion:

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; 
    } 

Wenn Token ein Objekt ist, die einen String Feldnamen enthalten: AccessToken.

Wenn ich Debuggen den Code und erreichen die Zeile mit der ‚**‘, wenn fbToken.AccessToken NULL ist, erhalte ich eine Ausnahme „Objektverweis auf eine Instanz eines Objekts eingestellt.

Wenn Ich sah in anderen Threads nach, die sie vorschlagen, String.IsNullOrWhiteSpace zu verwenden, aber es löste das Problem nicht, und ich behalte den Fehler.

Ich würde jede Hilfe sehr schätzen, danke im Voraus!

+3

'fbToken' ist wahrscheinlich null. – hofmeister

+0

ich weiß .. ich bereits erwähnt, dass .. – Tal

+1

'if (fbToken == null || String.IsNullOrWhiteSpace (fbToken.AccessToken))' würde Ihr Problem lösen – Andrei

Antwort

2

fbToken ist null, nicht fbToken.AccessToken. so etwas wie folgt verwenden:

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

Neue C# 6.0 Sie null propagation erlaubt, zu tun, dies zu erreichen, wie auch:

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

Sie haben AccessToken das Objekt fbToken und nicht sein Glied zu validieren.

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