MissingFieldException Classe
Definição
A exceção que é gerada quando há uma tentativa de acessar dinamicamente um campo que não existe.The exception that is thrown when there is an attempt to dynamically access a field that does not exist. Se um campo em uma biblioteca de classes tiver sido removido ou renomeado, recompile todos os assemblies que referenciam essa biblioteca.If a field in a class library has been removed or renamed, recompile any assemblies that reference that library.
public ref class MissingFieldException : MissingMemberException
public class MissingFieldException : MissingMemberException
[System.Serializable]
public class MissingFieldException : MissingMemberException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class MissingFieldException : MissingMemberException
type MissingFieldException = class
inherit MissingMemberException
type MissingFieldException = class
inherit MissingMemberException
interface ISerializable
[<System.Serializable>]
type MissingFieldException = class
inherit MissingMemberException
interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MissingFieldException = class
inherit MissingMemberException
interface ISerializable
Public Class MissingFieldException
Inherits MissingMemberException
- Herança
- Herança
- Atributos
- Implementações
Exemplos
Este exemplo mostra o que acontece se você tentar usar a reflexão para chamar um método que não existe e acessar um campo que não existe.This example shows what happens if you attempt to use reflection to call a method that does not exist and access a field that does not exist. O aplicativo recupera ao capturar o, o MissingMethodException MissingFieldException e o MissingMemberException .The application recovers by catching the MissingMethodException, MissingFieldException, and MissingMemberException.
using namespace System;
using namespace System::Reflection;
ref class App
{
};
int main()
{
try
{
// Attempt to call a static DoSomething method defined in the App class.
// However, because the App class does not define this method,
// a MissingMethodException is thrown.
App::typeid->InvokeMember("DoSomething", BindingFlags::Static |
BindingFlags::InvokeMethod, nullptr, nullptr, nullptr);
}
catch (MissingMethodException^ ex)
{
// Show the user that the DoSomething method cannot be called.
Console::WriteLine("Unable to call the DoSomething method: {0}",
ex->Message);
}
try
{
// Attempt to access a static AField field defined in the App class.
// However, because the App class does not define this field,
// a MissingFieldException is thrown.
App::typeid->InvokeMember("AField", BindingFlags::Static |
BindingFlags::SetField, nullptr, nullptr, gcnew array<Object^>{5});
}
catch (MissingFieldException^ ex)
{
// Show the user that the AField field cannot be accessed.
Console::WriteLine("Unable to access the AField field: {0}",
ex->Message);
}
try
{
// Attempt to access a static AnotherField field defined in the App class.
// However, because the App class does not define this field,
// a MissingFieldException is thrown.
App::typeid->InvokeMember("AnotherField", BindingFlags::Static |
BindingFlags::GetField, nullptr, nullptr, nullptr);
}
catch (MissingMemberException^ ex)
{
// Notice that this code is catching MissingMemberException which is the
// base class of MissingMethodException and MissingFieldException.
// Show the user that the AnotherField field cannot be accessed.
Console::WriteLine("Unable to access the AnotherField field: {0}",
ex->Message);
}
}
// This code produces the following output.
//
// Unable to call the DoSomething method: Method 'App.DoSomething' not found.
// Unable to access the AField field: Field 'App.AField' not found.
// Unable to access the AnotherField field: Field 'App.AnotherField' not found.
using System;
using System.Reflection;
public class App
{
public static void Main()
{
try
{
// Attempt to call a static DoSomething method defined in the App class.
// However, because the App class does not define this method,
// a MissingMethodException is thrown.
typeof(App).InvokeMember("DoSomething", BindingFlags.Static |
BindingFlags.InvokeMethod, null, null, null);
}
catch (MissingMethodException e)
{
// Show the user that the DoSomething method cannot be called.
Console.WriteLine("Unable to call the DoSomething method: {0}", e.Message);
}
try
{
// Attempt to access a static AField field defined in the App class.
// However, because the App class does not define this field,
// a MissingFieldException is thrown.
typeof(App).InvokeMember("AField", BindingFlags.Static | BindingFlags.SetField,
null, null, new Object[] { 5 });
}
catch (MissingFieldException e)
{
// Show the user that the AField field cannot be accessed.
Console.WriteLine("Unable to access the AField field: {0}", e.Message);
}
try
{
// Attempt to access a static AnotherField field defined in the App class.
// However, because the App class does not define this field,
// a MissingFieldException is thrown.
typeof(App).InvokeMember("AnotherField", BindingFlags.Static |
BindingFlags.GetField, null, null, null);
}
catch (MissingMemberException e)
{
// Notice that this code is catching MissingMemberException which is the
// base class of MissingMethodException and MissingFieldException.
// Show the user that the AnotherField field cannot be accessed.
Console.WriteLine("Unable to access the AnotherField field: {0}", e.Message);
}
}
}
// This code example produces the following output:
//
// Unable to call the DoSomething method: Method 'App.DoSomething' not found.
// Unable to access the AField field: Field 'App.AField' not found.
// Unable to access the AnotherField field: Field 'App.AnotherField' not found.
Imports System.Reflection
Public Class App
Public Shared Sub Main()
Try
' Attempt to call a static DoSomething method defined in the App class.
' However, because the App class does not define this method,
' a MissingMethodException is thrown.
GetType(App).InvokeMember("DoSomething", BindingFlags.Static Or BindingFlags.InvokeMethod, _
Nothing, Nothing, Nothing)
Catch e As MissingMethodException
' Show the user that the DoSomething method cannot be called.
Console.WriteLine("Unable to call the DoSomething method: {0}", e.Message)
End Try
Try
' Attempt to access a static AField field defined in the App class.
' However, because the App class does not define this field,
' a MissingFieldException is thrown.
GetType(App).InvokeMember("AField", BindingFlags.Static Or BindingFlags.SetField, _
Nothing, Nothing, New [Object]() {5})
Catch e As MissingFieldException
' Show the user that the AField field cannot be accessed.
Console.WriteLine("Unable to access the AField field: {0}", e.Message)
End Try
Try
' Attempt to access a static AnotherField field defined in the App class.
' However, because the App class does not define this field,
' a MissingFieldException is thrown.
GetType(App).InvokeMember("AnotherField", BindingFlags.Static Or BindingFlags.GetField, _
Nothing, Nothing, Nothing)
Catch e As MissingMemberException
' Notice that this code is catching MissingMemberException which is the
' base class of MissingMethodException and MissingFieldException.
' Show the user that the AnotherField field cannot be accessed.
Console.WriteLine("Unable to access the AnotherField field: {0}", e.Message)
End Try
End Sub
End Class
' This code example produces the following output:
'
' Unable to call the DoSomething method: Method 'App.DoSomething' not found.
' Unable to access the AField field: Field 'App.AField' not found.
' Unable to access the AnotherField field: Field 'App.AnotherField' not found.
Comentários
Normalmente, um erro de compilação é gerado se o código tenta acessar um membro inexistente de uma classe.Normally a compilation error is generated if code attempts to access a nonexistent member of a class. MissingFieldException foi projetado para lidar com casos em que é feita uma tentativa de acessar dinamicamente um campo renomeado ou excluído de um assembly que não é referenciado por seu nome forte.MissingFieldException is designed to handle cases where an attempt is made to dynamically access a renamed or deleted field of an assembly that is not referenced by its strong name. O MissingFieldException é gerado quando o código em um assembly dependente tenta acessar um campo ausente em um assembly que foi modificado.The MissingFieldException is thrown when code in a dependent assembly attempts to access a missing field in an assembly that was modified.
MissingFieldException usa o COR_E_MISSINGFIELD HRESULT, que tem o valor 0x80131511.MissingFieldException uses the HRESULT COR_E_MISSINGFIELD, that has the value 0x80131511.
Para obter uma lista de valores de propriedade inicial para uma instância do MissingFieldException, consulte o MissingFieldException construtores.For a list of initial property values for an instance of MissingFieldException, see the MissingFieldException constructors.
Construtores
MissingFieldException() |
Inicializa uma nova instância da classe MissingFieldException.Initializes a new instance of the MissingFieldException class. |
MissingFieldException(SerializationInfo, StreamingContext) |
Inicializa uma nova instância da classe MissingFieldException com dados serializados.Initializes a new instance of the MissingFieldException class with serialized data. |
MissingFieldException(String) |
Inicializa uma nova instância da classe MissingFieldException com uma mensagem de erro especificada.Initializes a new instance of the MissingFieldException class with a specified error message. |
MissingFieldException(String, Exception) |
Inicializa uma nova instância da classe MissingFieldException com uma mensagem de erro especificada e uma referência à exceção interna que é a causa da exceção.Initializes a new instance of the MissingFieldException class with a specified error message and a reference to the inner exception that is the cause of this exception. |
MissingFieldException(String, String) |
Inicializa uma nova instância da classe MissingFieldException com o nome de classe e o nome de campo especificados.Initializes a new instance of the MissingFieldException class with the specified class name and field name. |
Campos
ClassName |
Contém o nome de classe do membro ausente.Holds the class name of the missing member. (Herdado de MissingMemberException) |
MemberName |
Contém o nome do membro ausente.Holds the name of the missing member. (Herdado de MissingMemberException) |
Signature |
Contém a assinatura do membro ausente.Holds the signature of the missing member. (Herdado de MissingMemberException) |
Propriedades
Data |
Obtém uma coleção de pares de chave/valor que fornecem informações definidas pelo usuário adicionais sobre a exceção.Gets a collection of key/value pairs that provide additional user-defined information about the exception. (Herdado de Exception) |
HelpLink |
Obtém ou define um link para o arquivo de ajuda associado a essa exceção.Gets or sets a link to the help file associated with this exception. (Herdado de Exception) |
HResult |
Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception. (Herdado de Exception) |
InnerException |
Obtém a instância Exception que causou a exceção atual.Gets the Exception instance that caused the current exception. (Herdado de Exception) |
Message |
Obtém a cadeia de caracteres de texto que mostra a assinatura do campo ausente, o nome de classe e o nome do campo.Gets the text string showing the signature of the missing field, the class name, and the field name. Esta propriedade é somente para leitura.This property is read-only. |
Source |
Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error. (Herdado de Exception) |
StackTrace |
Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.Gets a string representation of the immediate frames on the call stack. (Herdado de Exception) |
TargetSite |
Obtém o método que gerou a exceção atual.Gets the method that throws the current exception. (Herdado de Exception) |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object. (Herdado de Object) |
GetBaseException() |
Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions. (Herdado de Exception) |
GetHashCode() |
Serve como a função de hash padrão.Serves as the default hash function. (Herdado de Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Define o objeto SerializationInfo com o nome de classe, o nome do membro, a assinatura do membro ausente e informações adicionais de exceção.Sets the SerializationInfo object with the class name, the member name, the signature of the missing member, and additional exception information. (Herdado de MissingMemberException) |
GetType() |
Obtém o tipo de runtime da instância atual.Gets the runtime type of the current instance. (Herdado de Exception) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object. (Herdado de Object) |
ToString() |
Cria e retorna uma representação de cadeia de caracteres da exceção atual.Creates and returns a string representation of the current exception. (Herdado de Exception) |
Eventos
SerializeObjectState |
Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception. (Herdado de Exception) |