Аннотации на интерфейсах - PullRequest
4 голосов
/ 28 июля 2010

Почему аннотации не работают в интерфейсах?

как:

public interface  IUser
{
    [Required]
    string FirstName { get; set; }
}

Теперь, если я создал класс для реализации этого

 public partial class Customer:IUser
{
    public Customer()
    {
    }

    public string FirstName
    {
        get; set;
    }
}

это не приведет к принудительной проверке, если я тоже не отмечу свойство в классе! так какой смысл аннотировать его в интерфейсе с самого начала! ! так есть идеи?

1 Ответ

4 голосов
/ 28 июля 2010

Ну, простой ответ заключается в том, что не имеет смысла аннотировать в интерфейсе. Как вы уже заметили, вызов Attribute.GetAttribute () (даже если унаследовано значение true) для свойства не возвращает атрибуты, оформленные в свойствах интерфейса, реализованных вашим классом. Предположительно, поддержка такого средства приведет к поразительной неоднозначности, когда несколько интерфейсов будут удовлетворены одной и той же реализацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...