with tutorial son query que metodo expresiones español c# lambda attributes

tutorial - linq with lambda expression in c#



El atributo del método C#no puede contener una expresión lambda? (1)

IntelliSense me dice "Expression no puede contener métodos anónimos o expresiones lambda". De Verdad? No estaba al tanto de esta limitación impuesta. ¿Es esto correcto? Supongo que estoy buscando un control de cordura aquí ...

public delegate bool Bar(string s); [AttributeUsage(AttributeTargets.All)] public class Foo : Attribute { public readonly Bar bar; public Foo(Bar bar) { this.bar = bar; } } public class Usage { [Foo(b => b == "Hello World!")] // IntelliSense Complains here public Usage() { } }


Si eso es correcto. Los valores de los atributos están limitados a las constantes de los siguientes tipos

  • Tipos simples (bool, byte, char, corto, int, largo, flotante y doble)
  • cuerda
  • Tipo de sistema
  • enums
  • objeto (El argumento para un parámetro de atributo de tipo objeto debe ser un valor constante de uno de los tipos anteriores).
  • Arrays unidimensionales de cualquiera de los tipos anteriores

Referencia: http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx