using System; public class Test { public static IFooController iFooController => (IFooController)new object(); public static FooRequest CreateRequest(Func> func) { return FooRequest.Create(func); } public static void Main() { var newRequest = CreateRequest(() => iFooController.GetEmployeeById("myPartner", 42, DateTime.Now.AddDays(-1))); } } public class FooRequest { public static FooRequest Create(Func> func) { //Help please. We need to extract the name of the method and the values of the parameters return new FooRequest(null, null); } public FooRequest(string function, object[] data = null) { //SendRequestToServiceBus(function, data); Console.Write($"Function name: {function}"); } } public class FooResponse { } public interface IFooController { FooResponse GetEmployeeById(string partnerName, int employeeId, DateTime? ifModifiedSince); }