Creating attributes for your needs
When we want source generators to generate some part of the code, we need to tell them what to generate and where to start. That is where attributes come in.
When the generator explores our code, the attributes on each type definition are discovered. Then, we can easily pick just the types we marked with attributes. But what attribute is good to use?
Any custom attribute that you can create is good enough to use for source code generators. Before creating one, just think about whether you need just the logical information or whether you need to pass some additional data to your generator.
In the MediaLibrary project, we have two service classes: MovieService
and PersonService
. Both classes are identical, except for the name and types used as generic parameters for the BaseService
class. This is a good example of some code that we can generate instead of typing again and again.
Let’s start modifying our project. Create a new file...