ObjectDisposedException ObjectDisposedException ObjectDisposedException ObjectDisposedException Class

Definición

Excepción que se produce cuando se realiza una operación en un objeto desechado.The exception that is thrown when an operation is performed on a disposed object.

public ref class ObjectDisposedException : InvalidOperationException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ObjectDisposedException : InvalidOperationException
type ObjectDisposedException = class
    inherit InvalidOperationException
Public Class ObjectDisposedException
Inherits InvalidOperationException
Herencia
Atributos

Ejemplos

En el ejemplo siguiente se muestra un error que ObjectDisposedException hace que se produzca la excepción.The following example demonstrates an error that causes the ObjectDisposedException exception to be thrown.

using namespace System;
using namespace System::IO;
int main()
{
   MemoryStream^ ms = gcnew MemoryStream( 16 );
   ms->Close();
   try
   {
      ms->ReadByte();
   }
   catch ( ObjectDisposedException^ e ) 
   {
      Console::WriteLine( "Caught: {0}", e->Message );
   }

}

using System;
using System.IO;

public class ObjectDisposedExceptionTest 
{
   public static void Main()
   {     
      MemoryStream ms = new MemoryStream(16);
      ms.Close();
      try 
      {
         ms.ReadByte();
      } 
      catch (ObjectDisposedException e) 
      {
         Console.WriteLine("Caught: {0}", e.Message);
      }
   }
}
Imports System.IO

Public Class ObjectDisposedExceptionTest
   
   Public Shared Sub Main()
      Dim ms As New MemoryStream(16)
      ms.Close()
      Try
         ms.ReadByte()
      Catch e As ObjectDisposedException
         Console.WriteLine("Caught: {0}", e.Message)
      End Try
   End Sub
End Class

Este código genera el siguiente resultado:This code produces the following output:

Caught:  
  Cannot access a closed Stream.  

Comentarios

Se ObjectDisposedException produce una excepción cuando se intenta obtener acceso a un miembro de un objeto que implementa IDisposable la interfaz y ese objeto se ha eliminado.An ObjectDisposedException is thrown when you try to access a member of an object that implements the IDisposable interface, and that object has been disposed. Normalmente, esta excepción se debe a una de las siguientes condiciones:Typically, this exception is caused by one of the following conditions:

  • Ha llamado al método de Dispose un objeto y está intentando obtener acceso a un miembro de instancia que obtiene o establece el estado del objeto.You've called an object's Dispose method, and you're trying to access an instance member that gets or sets the object's state. En el ejemplo siguiente se muestra ObjectDisposedException que se produce al intentar restablecer la frecuencia de las notificaciones del temporizador después de llamar al Timer.Dispose método.The following example illustrates the ObjectDisposedException that is thrown when you try to reset the frequency of timer notifications after you call the Timer.Dispose method.

    using System;
    using System.Threading;
    
    public class Example
    {
       public static void Main()
       {
          Timer t = new Timer(TimerNotification, null, 
                             100, Timeout.Infinite);
          Thread.Sleep(2000);
          t.Dispose();
          
          t.Change(200, 1000);                   
          Thread.Sleep(3000);
       }
    
       private static void TimerNotification(Object obj)
       {
          Console.WriteLine("Timer event fired at {0:F}", DateTime.Now);
       }
    }
    // The example displays output like the following:
    //    Timer event fired at Monday, July 14, 2014 11:54:08 AM
    //    
    //    Unhandled Exception: System.ObjectDisposedException: Cannot access a disposed object.
    //       at System.Threading.TimerQueueTimer.Change(UInt32 dueTime, UInt32 period)
    //       at Example.Main()
    
    Imports System.Threading
    
    Module Example
       Public Sub Main()
          Dim t As New Timer(AddressOf TimerNotification, Nothing, 
                             100, Timeout.Infinite)
          Thread.Sleep(2000)
          t.Dispose()
          
          t.Change(200, 1000)                   
          Thread.Sleep(3000)
       End Sub
    
       Private Sub TimerNotification(obj As Object)
          Console.WriteLine("Timer event fired at {0:F}", Date.Now)
       End Sub
    End Module
    ' The example displays output like the following:
    '    Timer event fired at Monday, July 14, 2014 11:54:08 AM
    '    
    '    Unhandled Exception: System.ObjectDisposedException: Cannot access a disposed object.
    '       at System.Threading.TimerQueueTimer.Change(UInt32 dueTime, UInt32 period)
    '       at Example.Main()
    
  • Ha llamado al método de Close un objeto y está intentando obtener acceso a un miembro de instancia que obtiene o establece el estado del objeto.You've called an object's Close method, and you're trying to access an instance member that gets or sets the object's state. A menudo, Close el método proporciona la implementación pública IDisposable.Dispose de un tipo del método.Often, the Close method provides a type's public implementation of the IDisposable.Dispose method.

  • Ha llamado varias veces al método Dispose de un objeto.You've called an object's Dispose method multiple times. Normalmente, esto no produce una excepción.Typically, this doesn't throw an exception. Sin embargo, en función de la implementación IDisposable.Disposede un tipo, es posible que no permita varias llamadas a. DisposeHowever, depending on how a type implements IDisposable.Dispose, it may not allow multiple calls to Dispose.

En la mayoría de los casos, esta excepción se produce por un error del desarrollador.In most cases, this exception results from developer error. En lugar de controlar el error en un try / catch bloque, debe corregir el error, normalmente mediante la creación de una instancia del objeto.Instead of handling the error in a try/catch block, you should correct the error, typically by reinstantiating the object.

Constructores

ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext) ObjectDisposedException(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase ObjectDisposedException con datos serializados.Initializes a new instance of the ObjectDisposedException class with serialized data.

ObjectDisposedException(String) ObjectDisposedException(String) ObjectDisposedException(String) ObjectDisposedException(String)

Inicializa una nueva instancia de la clase ObjectDisposedException con una cadena que contiene el nombre del objeto desechado.Initializes a new instance of the ObjectDisposedException class with a string containing the name of the disposed object.

ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception) ObjectDisposedException(String, Exception)

Inicializa una nueva instancia de la clase ObjectDisposedException con el mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.Initializes a new instance of the ObjectDisposedException class with a specified error message and a reference to the inner exception that is the cause of this exception.

ObjectDisposedException(String, String) ObjectDisposedException(String, String) ObjectDisposedException(String, String) ObjectDisposedException(String, String)

Inicializa una nueva instancia de la clase ObjectDisposedException con el mensaje y el nombre del objeto especificado.Initializes a new instance of the ObjectDisposedException class with the specified object name and message.

Propiedades

Data Data Data Data

Obtiene una colección de pares clave-valor que proporcionan más información definida por el usuario sobre la excepción.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtiene la instancia Exception que produjo la excepción actual.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Obtiene el mensaje que describe el error.Gets the message that describes the error.

ObjectName ObjectName ObjectName ObjectName

Obtiene el nombre del objeto desechado.Gets the name of the disposed object.

Source Source Source Source

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtiene el método que produjo la excepción actual.Gets the method that throws the current exception.

(Inherited from Exception)

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Recupera el objeto SerializationInfo con el nombre del parámetro y la información adicional de la excepción.Retrieves the SerializationInfo object with the parameter name and additional exception information.

GetType() GetType() GetType() GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Crea y devuelve una representación de cadena de la excepción actual.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Eventos

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Se aplica a

Consulte también: