CS0836 de erro do compilador

Mensagem de erro

Não pode usar o tipo anônimo em uma expressão de constante.

As únicas coisas permitidas em uma expressão de constante são chamadas de constantes, literais e expressões matemáticas combinam expressões constantes.

Para corrigir este erro

  • Verifique o tipo anônimo um tipo nomeado.

Exemplo

O exemplo a seguir mostra uma maneira de gerar CS0836:

// cs0836.cs
using System;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)]
public class A : Attribute
{
    public A(object obj)
    {
    }
}

[A(new { })] // CS0836
public class B
{
}

public class Test
{
    public static int Main()
    {        
        return 0;
    }
}