Code:
Class ImeKlase
<DisplayName("Artikal šifra")> Property ArtikalSifra As Integer
<DisplayName("Artikal naziv")> Property ArtikalNaziv As String
End Class
Class ImeKlase
<DisplayName("Artikal šifra")> Property ArtikalSifra As Integer
<DisplayName("Artikal naziv")> Property ArtikalNaziv As String
End Class
Ovaj atribut DisplayName mi koristi da zavežem PropertyGrid za objekat i da se ta imena vide. To lepo radi.
Sad mi taj DisplayName treba i na drugim mestima, to može da se izvadi preko:
Code:
Dim attrs() As Object = ImeKlase.GetType.GetProperty("ArtikalNaziv").GetCustomAttributes(GetType(DisplayNameAttribute), False)
DirectCast(attrs(0), DisplayNameAttribute).DisplayName
Dim attrs() As Object = ImeKlase.GetType.GetProperty("ArtikalNaziv").GetCustomAttributes(GetType(DisplayNameAttribute), False)
DirectCast(attrs(0), DisplayNameAttribute).DisplayName
Na taj način mogu da dobijem DisplayName od određenog propertisa.
E sad bi ja dodatno da zakomplikujem pa da napravim ekstenziju na propertis kako bi dobio DisplayName prostim kucanjem
Code:
ImeKlase.ArtikalNaziv.DisplayName
ImeKlase.ArtikalNaziv.DisplayName
I upravo tu imam problem... ako napravim ekstenziju na klasu onda se ekstenzija vidi na klasi a ne na propertisima klase:
Code:
<System.Runtime.CompilerServices.Extension> _
Public Function DisplayName(s As ImeKlase) As String
nešto...
End Function
<System.Runtime.CompilerServices.Extension> _
Public Function DisplayName(s As ImeKlase) As String
nešto...
End Function
Dakle pitanje je: kako da napravim ekstenziju baš na propertis klase?