2013-10-28 8 views
5

Czy jest możliwe użycie pojedynczej adnotacji/atrybutu danych dla wielu właściwości?Czy istnieje sposób użycia jednej adnotacji danych/atrybutu z wieloma właściwościami?

Zamiast:

[Required] 
public string Name {get;set;} 
[Required] 
public string Something {get; set;} 
[Required] 
public string Everything {get;set;} 

Jeden atrybut dla trzech właściwości:

[Required] 
public string Name {get;set;} 
public string Something {get; set;} 
public string Everything {get;set;} 

Znam drugi blok kod ustawia tylko nazwa nie null, ale czy jest jakiś sposób, aby wszystkie trzy właściwości not null z tylko jednym atrybutem [Required]?

Odpowiedz

5

Nie można tego specjalnie zrobić.

Jeśli Twoim celem jest zminimalizowanie pisania i dodanie pojedynczego atrybutu, który weryfikuje wszystkie elementy danego typu, możesz utworzyć niestandardowy atrybut sprawdzania poprawności i zastosować go do typu. Może użyć odbicia, aby wyciągnąć wszystkie właściwości typu i je sprawdzić.

1

Nie, nie ma.

Atrybuty należy stosować jawnie do każdej nieruchomości.

Nie jestem pewien, co chcesz zapisać tutaj. Wysiłek kodowania to po prostu kopiowanie i wklejanie, a jeśli wymagane pola kiedykolwiek się zmienią, musisz zmienić układ kodu, zamiast tylko dodawać lub usuwać atrybut ze zmodyfikowanych właściwości.

Skąd kompilator wie, kiedy przerwać stosowanie atrybutu [Required]?

Jak rozmieściłbyś kod, gdyby istniało wiele atrybutów, na różnych zestawach właściwości?

Powiązane problemy