When put on a method requires the presense of that's method overload with the same params wrapped into Expression<Func<,>>. For example: [Inlineable] public static TOut Method1(this TIn item) { return Method1().Apply(item); } public static Expression<Func<TIn, TOut>> Method1() { //return expression here }