TypeLoadException Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe TypeLoadException.
Sobrecargas
| Nome | Description |
|---|---|
| TypeLoadException() |
Inicializa uma nova instância da classe TypeLoadException. |
| TypeLoadException(String) |
Inicializa uma nova instância da TypeLoadException classe com uma mensagem de erro especificada. |
| TypeLoadException(SerializationInfo, StreamingContext) |
Obsoleto.
Inicializa uma nova instância da TypeLoadException classe com dados serializados. |
| TypeLoadException(String, Exception) |
Inicializa uma nova instância da TypeLoadException classe com uma mensagem de erro especificada e uma referência à exceção interna que é a causa dessa exceção. |
TypeLoadException()
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
Inicializa uma nova instância da classe TypeLoadException.
public:
TypeLoadException();
public TypeLoadException();
Public Sub New ()
Comentários
Esse construtor inicializa a Message propriedade da nova instância para uma mensagem fornecida pelo sistema que descreve o erro, como "Ocorreu uma falha ao carregar um tipo". Essa mensagem leva em conta a cultura atual do sistema.
A tabela a seguir mostra os valores de propriedade iniciais de uma instância de TypeLoadException.
| Propriedade | Valor |
|---|---|
| InnerException | Uma referência nula (Nothing no Visual Basic). |
| Message | A cadeia de caracteres de mensagem de erro localizada. |
Aplica-se a
TypeLoadException(String)
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
Inicializa uma nova instância da TypeLoadException classe com uma mensagem de erro especificada.
public:
TypeLoadException(System::String ^ message);
public TypeLoadException(string message);
public TypeLoadException(string? message);
new TypeLoadException : string -> TypeLoadException
Public Sub New (message As String)
Parâmetros
- message
- String
A mensagem que descreve o erro.
Exemplos
O exemplo de código a seguir demonstra o TypeLoadException(String) construtor. Ele contém um método que gera um TypeLoadException com uma mensagem personalizada e exibe a mensagem de erro para o console.
using System;
public class Example
{
public static void Main()
{
try {
// Call a method that throws an exception.
TypeLoadExceptionDemoClass.GenerateException();
}
catch (TypeLoadException e) {
Console.WriteLine("TypeLoadException:\n {0}", e.Message);
}
}
}
class TypeLoadExceptionDemoClass
{
public static bool GenerateException()
{
// Throw a TypeLoadException with a custom defined message.
throw new TypeLoadException("This is a custom TypeLoadException error message.");
}
}
// The example displays the following output:
// TypeLoadException:
// This is a custom TypeLoadException error message.
Public Class Example
Public Shared Sub Main()
Try
' Call a method that throws an exception.
TypeLoadExceptionDemoClass.GenerateException()
Catch e As TypeLoadException
Console.WriteLine("TypeLoadException:{0} {1}", vbCrLf, e.Message)
End Try
End Sub
End Class
Class TypeLoadExceptionDemoClass
Public Shared Function GenerateException() As Boolean
' Throw a TypeLoadException with a custom message.
Throw New TypeLoadException("This is a custom TypeLoadException error message.")
End Function
End Class
' The example displays the following output:
' TypeLoadException:
' This is a custom TypeLoadException error message.
Comentários
O conteúdo do message parâmetro deve ser compreensível para o usuário. O chamador desse construtor é necessário para garantir que essa cadeia de caracteres tenha sido localizada para a cultura atual do sistema.
A tabela a seguir mostra os valores de propriedade iniciais de uma instância de TypeLoadException.
| Propriedade | Valor |
|---|---|
| InnerException | Uma referência nula (Nothing no Visual Basic). |
| Message | A cadeia de caracteres de mensagem de erro. |
Aplica-se a
TypeLoadException(SerializationInfo, StreamingContext)
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
Cuidado
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
Inicializa uma nova instância da TypeLoadException classe com dados serializados.
protected:
TypeLoadException(System::Runtime::Serialization::SerializationInfo ^ info, System::Runtime::Serialization::StreamingContext context);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
protected TypeLoadException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new TypeLoadException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> TypeLoadException
new TypeLoadException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> TypeLoadException
Protected Sub New (info As SerializationInfo, context As StreamingContext)
Parâmetros
- info
- SerializationInfo
O objeto que contém os dados do objeto serializado.
- context
- StreamingContext
As informações contextuais sobre a origem ou o destino.
- Atributos
Exceções
O info objeto é null.
Exemplos
O exemplo a seguir gera uma exceção e serializa os dados de exceção para um arquivo e reconstitui a exceção. Para que este exemplo de código seja executado, você deve fornecer o nome do assembly totalmente qualificado. Para obter informações sobre como obter o nome do assembly totalmente qualificado, consulte Nomes de Assembly.
using System;
using System.Reflection;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
using System.IO;
class GetObjectDataDemo
{
public static void Main()
{
// Get a reference to the assembly mscorlib.dll, which is always
// loaded. (System.String is defined in mscorlib.)
Assembly mscorlib = typeof(string).Assembly;
try
{
Console.WriteLine ("Attempting to load a type not present in the assembly 'mscorlib'");
// This loading of invalid type raises a TypeLoadException
Type myType = mscorlib.GetType("System.NonExistentType", true);
}
catch (TypeLoadException)
{
// Serialize the exception to disk and reconstitute it.
System.DateTime ErrorDatetime = DateTime.Now;
Console.WriteLine("A TypeLoadException has been raised.");
// Create MyTypeLoadException instance with current time.
MyTypeLoadException myException = new MyTypeLoadException(ErrorDatetime);
IFormatter myFormatter = new SoapFormatter();
Stream myFileStream = new FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None);
Console.WriteLine("Serializing the TypeLoadException with DateTime as " + ErrorDatetime);
// Serialize the MyTypeLoadException instance to a file.
myFormatter.Serialize(myFileStream, myException);
myFileStream.Close();
Console.WriteLine("Deserializing the Exception.");
myFileStream = new FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None);
// Deserialize and reconstitute the instance from file.
myException = (MyTypeLoadException) myFormatter.Deserialize(myFileStream);
myFileStream.Close();
Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime);
}
}
}
// This class overrides the GetObjectData method and initializes
// its data with current time.
[Serializable]
public class MyTypeLoadException : TypeLoadException
{
private System.DateTime _errorDateTime = DateTime.Now;
public DateTime ErrorDateTime { get { return _errorDateTime; }}
public MyTypeLoadException(DateTime myDateTime)
{
_errorDateTime = myDateTime;
}
protected MyTypeLoadException(SerializationInfo sInfo, StreamingContext sContext)
: base(sInfo, sContext)
{
// Reconstitute the deserialized information into the instance.
_errorDateTime = sInfo.GetDateTime("ErrorDate");
}
public override void GetObjectData(SerializationInfo sInfo, StreamingContext sContext)
{
base.GetObjectData(sInfo, sContext);
// Add a value to the Serialization information.
sInfo.AddValue("ErrorDate", ErrorDateTime);
}
}
Imports System.Reflection
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Soap
Imports System.Security.Permissions
Imports System.IO
Class GetObjectDataDemo
Public Shared Sub Main()
' Get a reference to the assembly mscorlib.dll, which is always
' loaded. (System.String is defined in mscorlib.)
Dim tString As Type = GetType(String)
Dim mscorlib As [Assembly] = tString.Assembly
Try
Console.WriteLine("Attempting to load a type not present in the assembly 'mscorlib'")
' This loading of invalid type raises a TypeLoadException
Dim myType As Type = mscorlib.GetType("System.NonExistentType", True)
Catch
' Serialize the exception to disk and reconstitute it.
Dim ErrorDatetime as System.DateTime = DateTime.Now
Console.WriteLine("A TypeLoadException has been raised.")
' Create MyTypeLoadException instance with current time.
Dim myException As new MyTypeLoadException(ErrorDatetime)
Dim myFormatter as IFormatter = new SoapFormatter()
Dim myFileStream as Stream
myFileStream = New FileStream("typeload.xml", FileMode.Create, FileAccess.Write, FileShare.None)
Console.WriteLine("Serializing the TypeLoadException with DateTime as " _
& ErrorDatetime.ToString())
' Serialize the MyTypeLoadException instance to a file.
myFormatter.Serialize(myFileStream, myException)
myFileStream.Close()
Console.WriteLine("Deserializing the Exception.")
myFileStream = New FileStream("typeload.xml", FileMode.Open, FileAccess.Read, FileShare.None)
' Deserialize and reconstitute the instance from file.
myException = CType(myFormatter.Deserialize(myFileStream), MyTypeLoadException)
myFileStream.Close()
Console.WriteLine("Deserialized exception has ErrorDateTime = " + myException.ErrorDateTime.ToString())
End Try
End Sub
End Class
' This class overrides the GetObjectData method and initializes
' its data with current time.
<Serializable()> _
Public Class MyTypeLoadException
Inherits TypeLoadException
Private _errorDateTime As System.DateTime = DateTime.Now
Public ReadOnly Property ErrorDateTime As DateTime
Get
Return _errorDateTime
End Get
End Property
Public Sub New(myDateTime As DateTime)
_errorDateTime = myDateTime
End Sub
Protected Sub New(sInfo As SerializationInfo, sContext As StreamingContext)
MyBase.New(sInfo, sContext)
' Reconstitute the deserialized information into the instance.
_errorDateTime = sInfo.GetDateTime("ErrorDate")
End Sub
' GetObjectData overrides must always have a demand for SerializationFormatter.
<SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter:=true)> _
Public Overrides Sub GetObjectData(sInfo As SerializationInfo, sContext As StreamingContext)
MyBase.GetObjectData(sInfo, sContext)
' Add a value to the Serialization information.
sInfo.AddValue("ErrorDate", ErrorDateTime)
End Sub
End Class
Comentários
Esse construtor é chamado durante a desserialização para reconstituir o objeto de exceção transmitido por um fluxo. Para obter mais informações, consulte de serialização XML e SOAP.
Confira também
Aplica-se a
TypeLoadException(String, Exception)
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
- Origem:
- TypeLoadException.cs
Inicializa uma nova instância da TypeLoadException classe com uma mensagem de erro especificada e uma referência à exceção interna que é a causa dessa exceção.
public:
TypeLoadException(System::String ^ message, Exception ^ inner);
public TypeLoadException(string message, Exception inner);
public TypeLoadException(string? message, Exception? inner);
new TypeLoadException : string * Exception -> TypeLoadException
Public Sub New (message As String, inner As Exception)
Parâmetros
- message
- String
A mensagem de erro que explica o motivo da exceção.
- inner
- Exception
A exceção que é a causa da exceção atual. Se o inner parâmetro não nullfor, a exceção atual será gerada em um catch bloco que manipula a exceção interna.
Exemplos
O exemplo de código a seguir demonstra o TypeLoadException(String, Exception) construtor. Ele contém um método que gera uma TypeLoadExceptionexceção , captura essa exceção e gera uma nova TypeLoadException com uma mensagem personalizada, incluindo o original TypeLoadException como a exceção interna.
using System;
using System.Runtime.InteropServices;
public class TypeLoadException_Constructor3
{
public static void Main()
{
Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.");
try
{
TypeLoadExceptionDemoClass3.GenerateException();
}
catch (TypeLoadException e)
{
Console.WriteLine ("TypeLoadException: \n\tError Message = " + e.Message);
Console.WriteLine ("TypeLoadException: \n\tInnerException Message = " + e.InnerException.Message );
}
catch (Exception e)
{
Console.WriteLine ("Exception: \n\tError Message = " + e.Message);
}
}
}
class TypeLoadExceptionDemoClass3
{
// A call to this method will raise a TypeLoadException.
[DllImport("NonExistentDLL.DLL", EntryPoint="MethodNotExists")]
public static extern void NonExistentMethod();
public static void GenerateException()
{
try
{
NonExistentMethod();
}
catch (TypeLoadException e)
{
// Rethrow exception with the exception as inner exception
throw new TypeLoadException("This exception was raised due to a call to an invalid method.", e);
}
}
}
Imports System.Runtime.InteropServices
Public Class TypeLoadException_Constructor3
Public Shared Sub Main()
Console.WriteLine("Calling a method in a non-existent DLL which triggers a TypeLoadException.")
Try
TypeLoadExceptionDemoClass.GenerateException()
Catch e As TypeLoadException
Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
Console.WriteLine(("TypeLoadException: " + ControlChars.Cr + ControlChars.Tab + "InnerException Message = " + e.InnerException.Message))
Catch e As Exception
Console.WriteLine(("Exception: " + ControlChars.Cr + ControlChars.Tab + "Error Message = " + e.Message))
End Try
End Sub
End Class
Class TypeLoadExceptionDemoClass
' A call to this method will raise a TypeLoadException.
Public Declare Sub NonExistentMethod Lib "NonExistentDLL.DLL" Alias "MethodNotExists" ()
Public Shared Sub GenerateException()
Try
NonExistentMethod()
Catch e As TypeLoadException
' Rethrow exception with the exception as inner exception
Throw New TypeLoadException("This exception was raised due to a call to an invalid method.", e)
End Try
End Sub
End Class
Comentários
Uma exceção gerada como resultado direto de uma exceção anterior pode incluir uma referência à exceção anterior na InnerException propriedade. A InnerException propriedade retorna o mesmo valor que é passado para o construtor ou null se a InnerException propriedade não fornece o valor de exceção interna ao construtor.
A tabela a seguir mostra os valores de propriedade iniciais de uma instância de TypeLoadException.
| Propriedade | Valor |
|---|---|
| InnerException | A referência de exceção interna. |
| Message | A cadeia de caracteres de mensagem de erro. |