Instead of returning a specific DTO from application services, we will now return dynamically built anonymous types
For authorization - queries can't return their full DTO if the actor is not authorized to access a property.
Normally people do property level filtering in the views or presentation layer - however in our case we also need to support authenticated services.  IE - the inventory service should not be able to query accounting for balances.

After a day of researching and experimentation I found various projects which lead me to building expression trees.
After trying my hand myself I found this project https://github.com/thiscode/DynamicSelectExtensions which does exactly what I needed