Mam następujący atrybut niestandardowy, który może być stosowany na właściwości:Niestandardowy atrybut rzeczowych - Pierwsze rodzaju i wartości przypisanej własności
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class IdentifierAttribute : Attribute
{
}
Na przykład:
public class MyClass
{
[Identifier()]
public string Name { get; set; }
public int SomeNumber { get; set; }
public string SomeOtherProperty { get; set; }
}
Nie będzie również inne klasy, do których atrybut Identyfikator może zostać dodany do właściwości innego typu:
public class MyOtherClass
{
public string Name { get; set; }
[Identifier()]
public int SomeNumber { get; set; }
public string SomeOtherProperty { get; set; }
}
Muszę być w stanie uzyskać te informacje w mojej klasie konsumującej. Na przykład:
public class TestClass<T>
{
public void GetIDForPassedInObject(T obj)
{
var type = obj.GetType();
//type.GetCustomAttributes(true)???
}
}
Jaki jest najlepszy sposób postępowania w tej sprawie? Potrzebuję uzyskać typ pola [Identyfikator()] (int, string, etc ...) i rzeczywistą wartość, oczywiście w oparciu o typ.
dzięki - może” t używaj "prop" w lambda w FirstOrDefault, ale posortowałem to :-) – Alex
Ahh tak, pisałem to w notatniku ;-) Naprawiono. –
Znacząco zaznaczyłem moją właściwość [Identyfikator()], ale właściwość .GetProperties() zwraca wszystkie pozostałe właściwości Z WYJĄTKIEM tego ?! mój atrybut wydaje się to ukrywać? – Alex