Attributes are a powerful tool for C# developers. I was recently working on an integration in which I had to do some truncation during serialization. Without getting into specifics, let's go over a simple example scenario.
Let's say you want to validate the maximum field length for a string property. There's different ways to accomplish this, but in some situations you could utilize reflection. In the gist below, I have defined a custom
MyLengthAttribute that simply sets a value on the attribute. I then have a model named
MyDataModel with properties that utilize this attribute and pass it the
int value. On the
Main() method, I am using reflection to dynamically check the properties for this attribute and when my criteria is met, I am printing out some output, which in this example would be:
PropertyB has an invalid value "12345" with length of 5 when max length is 4.
This is a simple example, but I hope that you can see the potential use cases from this.