Ich habe das folgende benutzerdefinierte Attribute, die auf Eigenschaften angewendet werden können:Benutzerdefinierte Attribut auf Eigenschaft - Getting Art und Wert der zurück Eigenschaft
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class IdentifierAttribute : Attribute
{
}
Zum Beispiel:
public class MyClass
{
[Identifier()]
public string Name { get; set; }
public int SomeNumber { get; set; }
public string SomeOtherProperty { get; set; }
}
wird es auch sein, andere Klassen, denen das Identifikatorattribut zu Eigenschaften unterschiedlichen Typs hinzugefügt werden könnte:
public class MyOtherClass
{
public string Name { get; set; }
[Identifier()]
public int SomeNumber { get; set; }
public string SomeOtherProperty { get; set; }
}
Ich muss dann in der Lage sein, diese Informationen in meiner Verbrauchsklasse zu bekommen. Zum Beispiel:
public class TestClass<T>
{
public void GetIDForPassedInObject(T obj)
{
var type = obj.GetType();
//type.GetCustomAttributes(true)???
}
}
Was ist der beste Weg, um darüber zu gehen? Ich muss den Typ des Feldes [Identifier()] (int, string, etc ...) und den tatsächlichen Wert, offensichtlich basierend auf dem Typ.
Dank - kann‘ t verwenden "prop" innerhalb der Lambda in FirstOrDefault, aber ich habe es sortiert :-) – Alex
Ahh ja, schrieb es in Notizblock ;-) behoben. –
Ich habe meine Eigenschaft mit [Identifier()] markiert, aber die .GetProperties() gibt alle anderen Eigenschaften zurück, AUSSER diesem ?! Mein Attribut scheint es zu verbergen? – Alex