Salve a tutti, sto creando una libreria, con metodi dotati di firme diverse all'interno, che chiamano metodi di un webservice.

Vorrei creare una sorta di "wrapper comune" a tutti questi metodi, ovvero da frontend richiamerò direttamente il metodo, ma vorrei che fosse implicitamente "wrappato" da un try catch generico gestito a monte, che logga gli errori e rilancia la eccezione in modo da restituirla a frontend.

So che potrei risolvere utilizzando un metodo master, passando in input il nome del metodo da invocare e utilizzando uno switch case sulla stringa(o enum) passata in input, ma avrei problemi con gli argomenti in input che variano da metodo a metodo.
Eviterei anche l'utilizzo di override e classi estese/interfacce.

Ho provato a utilizzare un po i delegate, o a estendere la classe exception, ma non ho risolto granchè.

Cosa mi consigliate?