2010-04-25 16 views
5

Czy ktoś wie, czy można zdefiniować/zadeklarować na własnym atrybucie niestandardowym ograniczenie do typu pola, na które może on się ubiegać? Istnieje flagi, które ograniczają korzystanie z atrybutu:ograniczenie typu właściwości niestandardowego atrybutu

[AttributeUsage(
AttributeTargets.Property, 
AllowMultiple = false)] 

Im patrząc na coś takiego:

UseOnlyOnType = typeof(string) 

jakieś pomysły?

Odpowiedz

4

Nie jest to możliwe bezpośrednio.

Ale ponieważ musisz napisać kod, aby skorzystać z tego atrybutu (na własną rękę są to po prostu nieużywane metadane), ten kod może działać tylko sprawdzając twój atrybut, gdy typ pola to string.

3

Nie ma sposobu, aby to sprawdzić dla kompilatora - najlepszą opcją będzie sprawdzanie czasu wykonania pola z odbiciem.

Powiązane problemy