Я хочу использовать System.Attribute
для создания метаданных для моего класса.
мне нужно использовать преимущества компилятора при получении имен вместо использования string
s. но мой подход не может быть сделан, потому что attibutes не принимает сложный параметр, как я написал здесь:
Public Class Foo
Public Property Id as Integer
<Attribute(AttributeInputA.Create(of Bar)(Function(item) item.Name))>
Public Property Name as String
End Class
Public Class Bar
Public Property Name as String
End Class
<AttributeUsage(AttributeTargets.Property Or
AttributeTargets.Field,
AllowMultiple:=True)>
Public Class Attribute
Public Sub New(attibuteInputA as AttributeInputA)
End Sub
End Class
Public Class AttributeInputA
Public Share Function Create(Of T)(System.Linq.Expressions.Expression(Of Func(Of Object , T)) AS AttributeInputA
End Function
End Class
Что я хочу знать, так это то, что есть ли другие способы достичь этого?