using System;
public class Test
{
public static IFooController iFooController => (IFooController)new object();
public static FooRequest CreateRequest<T>(Func<FooResponse<T>> 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<T>(Func<FooResponse<T>> 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<T> { }
public interface IFooController
{
FooResponse<string> GetEmployeeById(string partnerName, int employeeId, DateTime? ifModifiedSince);
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyBJRm9vQ29udHJvbGxlciBpRm9vQ29udHJvbGxlciA9PiAoSUZvb0NvbnRyb2xsZXIpbmV3IG9iamVjdCgpOwoJcHVibGljIHN0YXRpYyBGb29SZXF1ZXN0IENyZWF0ZVJlcXVlc3Q8VD4oRnVuYzxGb29SZXNwb25zZTxUPj4gZnVuYykKCXsKCQlyZXR1cm4gRm9vUmVxdWVzdC5DcmVhdGUoZnVuYyk7Cgl9CgoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBuZXdSZXF1ZXN0ID0gQ3JlYXRlUmVxdWVzdCgoKSA9PiBpRm9vQ29udHJvbGxlci5HZXRFbXBsb3llZUJ5SWQoIm15UGFydG5lciIsIDQyLCBEYXRlVGltZS5Ob3cuQWRkRGF5cygtMSkpKTsKCX0KfQoKcHVibGljIGNsYXNzIEZvb1JlcXVlc3QKewoJcHVibGljIHN0YXRpYyBGb29SZXF1ZXN0IENyZWF0ZTxUPihGdW5jPEZvb1Jlc3BvbnNlPFQ+PiBmdW5jKQoJewoJCS8vSGVscCBwbGVhc2UuIFdlIG5lZWQgdG8gZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kIGFuZCB0aGUgdmFsdWVzIG9mIHRoZSBwYXJhbWV0ZXJzCgkJcmV0dXJuIG5ldyBGb29SZXF1ZXN0KG51bGwsIG51bGwpOwoJfQoKCXB1YmxpYyBGb29SZXF1ZXN0KHN0cmluZyBmdW5jdGlvbiwgb2JqZWN0W10gZGF0YSA9IG51bGwpCgl7CgkJLy9TZW5kUmVxdWVzdFRvU2VydmljZUJ1cyhmdW5jdGlvbiwgZGF0YSk7CgkJQ29uc29sZS5Xcml0ZSgkIkZ1bmN0aW9uIG5hbWU6IHtmdW5jdGlvbn0iKTsKCX0KfQoKcHVibGljIGNsYXNzIEZvb1Jlc3BvbnNlPFQ+IHsgfQoKcHVibGljIGludGVyZmFjZSBJRm9vQ29udHJvbGxlcgp7CglGb29SZXNwb25zZTxzdHJpbmc+IEdldEVtcGxveWVlQnlJZChzdHJpbmcgcGFydG5lck5hbWUsIGludCBlbXBsb3llZUlkLCBEYXRlVGltZT8gaWZNb2RpZmllZFNpbmNlKTsKfQ==