Nas minhas aulas, implemento IDisposable da seguinte maneira:
public class User : IDisposable
{
public int id { get; protected set; }
public string name { get; protected set; }
public string pass { get; protected set; }
public User(int UserID)
{
id = UserID;
}
public User(string Username, string Password)
{
name = Username;
pass = Password;
}
// Other functions go here...
public void Dispose()
{
// Clear all property values that maybe have been set
// when the class was instantiated
id = 0;
name = String.Empty;
pass = String.Empty;
}
}
No VS2012, minha análise de código diz para implementar IDisposable corretamente, mas não tenho certeza do que fiz de errado aqui.
O texto exato é o seguinte:
CA1063 Implementar IDisposable corretamente Forneça uma implementação substituível de Dispose (bool) em 'User' ou marque o tipo como lacrado. Uma chamada para Dispose (false) deve limpar apenas os recursos nativos. Uma chamada para Dispose (true) deve limpar os recursos gerenciados e nativos. stman User.cs 10
Para referência: CA1063: Implementar IDisposable corretamente
Eu li esta página, mas tenho medo de não entender o que precisa ser feito aqui.
Se alguém puder explicar em termos mais lânguidos qual é o problema e / ou como o IDisposable deve ser implementado, isso realmente ajudará!
IDispoable
se tiver recursos não gerenciados para descarte (isso inclui recursos não gerenciados que são agrupados ( SqlConnection
, FileStream
etc.). Você não deve nem deve implementar IDisposable
se tiver apenas recursos gerenciados como aqui. . um grande problema com a análise de código é muito bom em verificar bobo pequenas regras, mas não bom em verificação de erros conceituais.
Dispose
?