2017-02-21 4 views
0

Я использую Rally Web API, я аутентичности Rally класс веб-API ниже:Невозможно привести объект типа «Rally.RestApi.RallyRestApi» к типу «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 
     } 
     } 

    } 

Я хочу распоряжаться или убить объект после выполнения кода метода, но во время выполнения ниже ошибки:

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

Может ли кто-нибудь помочь мне в этом.

ответ

1

Вы не можете бросить RallyRestApi к IDisposable, потому что этот класс не реализует интерфейс IDisposable - RallyRestApi Class

Если вам не нужен этот объект после того, как метод выполняет:

finally 
{ 
    restApi = null; 
} 

И сборщик мусора будет уничтожьте этот объект во время следующей коллекции мусора, если у вас нет других ссылок на этот объект.

+0

Тогда каково было бы решение уничтожить или удалить объект? можете ли вы предложить мне. @Roma –

+0

@DotNetDeveloper, почему вам нужно вызвать 'Dispose()'. Если этот класс не использует неуправляемые ресурсы и не очень огромен, вам не нужно вызывать 'Dispose()'. Вы можете просто удалить блок 'finally', если вы ничего не сделаете. –

+0

См. Эту ссылку: http://stackoverflow.com/questions/42346253/rally-authentication-issue-in-getting-results. В соответствии с ответом мне нужно удалить объект. –

Смежные вопросы