Ler em inglês

Partilhar via


FieldBuilder.SetValue Método

Definição

Define o valor do campo compatível com o objeto fornecido.

C#
public override void SetValue(object? obj, object? val, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, System.Globalization.CultureInfo? culture);
C#
public override void SetValue(object obj, object val, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Globalization.CultureInfo culture);

Parâmetros

obj
Object

O objeto no qual acessar o campo.

val
Object

O valor a ser atribuído ao campo.

invokeAttr
BindingFlags

Um membro do IBinder que especifica o tipo de associação desejado (por exemplo, IBinder.CreateInstance, IBinder.ExactBinding).

binder
Binder

Um conjunto de propriedades e habilitação para associação, coerção de tipos de argumento e invocação de membros usando reflexão. Se o associador for nulo, o IBinder.DefaultBinding será usado.

culture
CultureInfo

As preferências de software de uma cultura específica.

Exceções

Não há suporte para esse método.

Comentários

Esse método atribuirá o parâmetro val ao campo refletido por essa instância em Objectobj. Se o campo for estático, obj será ignorado. Para campos não estáticos, obj deve ser uma instância de uma classe que herda ou declara o campo.

O novo valor é passado como um Object. Por exemplo, se o tipo do campo for booliano, uma instância de Object com o valor booliano apropriado será passada. Antes de definir o valor, SetValue verifica se o usuário tem permissão de acesso.

As restrições de acesso são ignoradas para código totalmente confiável. Private construtores, métodos, campos e propriedades podem ser acessados e invocados usando Reflexão sempre que o código for totalmente confiável.

Nota

Atualmente, não há suporte para esse método. Como solução alternativa, recupere o FieldInfo refletindo sobre o tipo concluído e chame SetValue para definir o valor do campo.

Aplica-se a

Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided), 2.1