Partilhar via


A versão personalizada de 'sistema.tempo de execução.CompilerServices.ExtensionAttribute' encontrados pelo compilador inválido é válida

Mensagem de erro

A versão personalizada de 'sistema.tempo de execução.CompilerServices.ExtensionAttribute' encontrados pelo compilador inválido é válida.Seus sinalizadores de uso do atributo devem ser conjunto para permitir assemblies, classes e métodos.

A versão personalizada do System.Runtime.CompilerServices.ExtensionAttribute que o compilador encontrado não defina seu atributo uso sinalizadores para permitir que o aplicativo do atributo para assemblies, métodos e classes. Aplicativo para pelo menos aqueles três elementos do programa é necessário.

ID de erro: BC36558

Para corrigir este erro

  • Altere a definição de atributo para ativar o atributo aplicar pelo menos a assemblies, métodos e classes, sistema autônomo mostrado nos exemplos a seguintes.

  • Use System.Runtime.CompilerServices.ExtensionAttribute em vez da versão personalizada.

Exemplo

O exemplo a seguir utiliza o AttributeUsage atributo para especificar qual programa elementos a nova versão do ExtensionAttribute pode aplicar. O exemplo especifica três membros do AttributeTargets enumeração: Assembly, Class, e Method. A omissão de qualquer um desses elementos irá causar esse erro.

Namespace System.Runtime.CompilerServices
    <AttributeUsage(AttributeTargets.Assembly Or _
        AttributeTargets.Class Or AttributeTargets.Method)>
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

Como alternativa, você pode permitir que ExtensionAttribute Aplicar a todos os elementos de programa usando o All membro de AttributeTargets.

    <AttributeUsage(AttributeTargets.All)>

Excluindo o AttributeUsage linha, sistema autônomo mostra o código a seguir, produz o mesmo resultado.

Namespace System.Runtime.CompilerServices
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

Consulte também

Tarefas

Como: Definir seus próprios atributos

Conceitos

Visão Geral de Atributos em Visual Basic

Métodos de extensão (Visual Basic)

Codificando Atributos Personalizados

Referência

ExtensionAttribute

Outros recursos

Atributos personalizados no Visual Basic