2016-11-02 5 views
-1

질문하기 전에 사이트에서 문제를 해결하기 위해 찾아 보았지만 아무것도 찾지 못했음을 언급해야합니다.null 문자열 예외

여기 내 기능입니다 :

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

토큰 문자열 필드 이름을 포함하는 객체입니다 : AccessToken.

내가 코드를 디버깅하고 '**'fbToken.AccessToken이 NULL 때, 나는 예외가와 선 도달 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다.을"

언제 때 나는 String.IsNullOrWhiteSpace을 사용하도록 제안한 다른 스레드를 찾았지만 문제를 해결하지 못했고 오류가 계속 발생합니다.

나는 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+3

'fbToken'은 아마도 null입니다. – hofmeister

+0

나는 .. 이미 언급했는데 .. – Tal

+1

'if (fbToken == null || String.IsNullOrWhiteSpace (fbToken.AccessToken))'는 문제를 해결할 것이다. – Andrei

답변

2

fbToken은 null이 아니며 fbToken.AccessToken이 아닙니다. 이 같은 것을 사용

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

새로운 C# 6.0 당신은뿐만 아니라 이러한 목표를 달성하기 위해 null propagation을 수행 할 수 있습니다 : 당신은 객체 fbToken 아니라 자신의 회원 AccessToken을 확인해야

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

.

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