Hello NopCommerce team and thank you for your job.
I am developing a plugin for NopCommerce 4.50 to generate invoices fully compliant with French (and maybe European) laws, for example for the eco-participation "tax" and for numbering. For this I inherited from PdfService and it works. But all PdfService attributes (_addressSettings, _catalogSettings,...) are private, so I have to redeclare them in my class and this is redundant code. I don't like redundant code. ;-) It might not be a bad idea to make them protected in a future release . No ?
All those private readonly fields are the 'backing' fields for the dependency injection. Consider that the PdfService is a partial class. I.e., you probably should not be inheriting from it but rather extending it.