2017-02-21 2 views
0

Ich verwende Rally Web-API zu geben, ich Rally Web-API-Klasse unten bin Authentifizierung:Konnte nicht das Objekt des Typs ‚Rally.RestApi.RallyRestApi‘ werfen ‚System.IDisposable‘

public class FetchRally 
    { 
    RallyRestApi restApi; 
    public FetchRally() 
    { 
     restApi = new RallyRestApi(webServiceVersion: "v2.0"); 
     restApi.Authenticate(HttpContext.Current.Session["Username"].ToString(), HttpContext.Current.Session["Password"].ToString(), "https://rally1.rallydev.com/", allowSSO: false); 
    } 

    public void GetMethod(){ 
     try{ 
     //Do Something 
     } 
     catch{} 
     finally 
     { 
      ((IDisposable)restApi).Dispose(); // Getting error 
     } 
     } 

    } 

Ich möchte entsorgen oder töten, um das Objekt nach dem Verfahren der Ausführung von Code, aber in der Laufzeit mit Blick auf unten Fehler:

Unable to cast object of type 'Rally.RestApi.RallyRestApi' to type 'System.IDisposable'.

Kann jemand mir bitte helfen, auf dies.

Antwort

1

Sie können nicht RallyRestApi-IDisposable werfen, weil diese Klasse nicht IDisposable Schnittstelle nicht implementiert - RallyRestApi Class

Wenn Sie dieses Objekt nicht brauchen nach Methode führt:

finally 
{ 
    restApi = null; 
} 

Und Garbage Collector wird Zerstören Sie dieses Objekt während der nächsten Garbage Collection, wenn Sie keine weiteren Verweise auf dieses Objekt haben.

+0

Was wäre dann die Lösung zu zerstören oder zu lösen Objekt? kannst du mir bitte vorschlagen. @Roma –

+0

@DotNetDeveloper, warum müssen Sie 'Dispose()' aufrufen. Wenn diese Klasse keine nicht verwalteten Ressourcen verwendet und nicht sehr groß ist, müssen Sie nicht 'Dispose()' aufrufen. Sie können 'finally' block einfach löschen, wenn Sie nichts anderes tun. –

+0

Bitte beachten Sie diesen Link: http://stackoverflow.com/questions/42346253/rally-authentication-issue-in-getting-results. Laut Antwort muss ich das Objekt entsorgen. –

Verwandte Themen