Порой, перед объявлением поля класса, или даже самого класса, можно заметить аргументы в [квадратных скобках]
пример сериализации из meatint
[Required]
public string Id { get; set; }
[Required]
[StringLength(50, MinimumLength=3)]
public string Name { get; set; }
[Required]
[Range(1, 100)]
public int Age { get; set;
Или пример из документации по WFC
[ServiceContract]
public interface IService
{
[OperationContract]
[WebGet]
string EchoWithGet(string s);
[OperationContract]
[WebInvoke]
string EchoWithPost(string s);
}
По логике, понятно, что это какая то обертка которая расширяются функционал. Но что это за конструкция и где можно про нее почитать?