IDisponibles, finalizadores y la definición de un recurso no administrado

Estoy tratando de asegurarme de que mi comprensión deIDisposable es correcto y hay algo de lo que todavía no estoy seguro.

IDisposable Parece servir a dos propósitos.

Para proporcionar una convención para "cerrar" un objeto gestionado a petición.Para proporcionar una convención para liberar "recursos no administrados" en poder de un objeto administrado.

Mi confusión proviene de identificar qué escenarios tienen "recursos no administrados" en juego.

Digamos que está utilizando un suministrado por MicrosoftIDisposable-implementar la clase (administrada) (por ejemplo, relacionada con la base de datos o el socket).

¿Cómo sabes si está implementando?IDisposable por sólo1 o1 y 2 ¿encima?¿Es usted responsable de asegurarse de que los recursos no administrados que puede tener o no internamente se liberan? ¿Debería agregar un finalizador (sería el mecanismo correcto?) A su propia clase que llama a instanceOfMsSuppliedClass.Dispose ()?

Respuestas a la pregunta(8)

Su respuesta a la pregunta