Extending NUnit is much easier now, unfortunately, our documentation needs to be updated with examples. You would extend NUnit by writing new attributes the exact same way that they are written in the framework itself. The best examples are actually in the NUnit source code. Just take a look at the source for an attribute that does something similar to what you want to do.
That said, you probably don't need to extend NUnit to read test data from a CSV file. You could use the TestCaseSource attribute where the source reads in the CSV and returns the values you want to use for your tests. See
https://github.com/nunit/nunit/wiki/TestCaseSource-Attribute for more information.