1

Ich habe eine Windows-App, die auf eine Google-Tabelle zugreift, um ein Telefonbuch zu erstellen. Wenn ich versuche, das Telefonbuch zu öffnen, werde ich mit System.NotImplementedException: The method or operation is not implemented. gekennzeichnet Ich bin nicht wirklich sicher, warum, weil es scheint, als ob es implementiert wird?NotImplementedException beim Zugriff auf ServiceAccountCredential C#

Dies ist der erste Punkt, der sich mit dem Thema gemeldet hat ist:

internal object FromCertificate(X509Certificate2 certificate) 
     { 
      throw new NotImplementedException(); //Error flags this line 
     } 

Dies ist der zweite. Soweit ich das beurteilen kann, ist an diesem Teil nichts falsch, aber es gibt immer noch eine Ausnahme.

ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer(serviceAccountEmail) 
      { 
       Scopes = new[] { "https://www.googleapis.com/auth/spreadsheets", "https://docs.google.com/feeds" } 
      }.FromCertificate(certificate)); 

Alle Vorschläge würden sehr geschätzt werden. Ich verwende C# mit Visual Studio 2015.

Antwort

1

Ich bin nicht wirklich sicher, warum, becayse es scheint, wie es implementiert wird?

Das Werbegeschenk ist diese Linie hier:

throw new NotImplementedException(); 

Die throw new NotImplementedException() ist in der Regel Kesselblech von Visual Studio, wenn Methoden Anstoßen aus.

Es wird nicht implementiert, nur weil Sie es aus dem Objekt mit .FromCertificate(certificate) aufrufen. Dies ruft nur die Methode auf, die dann den darin enthaltenen Code ausführt. Ergo, es trifft dann auf Ihre throw new NotImplementedException(); Code - also usw. brechen

Um implementieren Ihre Methode, müssen Sie die throw new NotImplementedException(); entfernen und es mit Ihrer eigenen Logik zu ersetzen.

Sie müssen einige Code in Ihre FromCertificate() Methode hinzufügen:

internal object FromCertificate(X509Certificate2 certificate) 
{ 
    // Do some work in here 
} 

this helps :)

+1

einfach hinzufügen, warum Ihr "zweiten Platz" ist eine Ausnahme das Markieren von oben: Ihre 'NotImplementedException' von Ihrer Methode sprudelt wieder hoch, und der Debugger benachrichtigt Sie von dem Punkt, an dem es aufgerufen wurde, wenn es dort zurückkehrt. Wenn du mit "fang" handelst, wird es nicht mehr nach oben blubbern, es sei denn du wirfst es erneut –