Yan Cui
I help clients go faster for less using serverless technologies.
Another good question on StackOverflow, and even better answer from Steven (miles better than what I managed!), the question was around how to implement an extension method to check whether a certain method has a particular attribute applied to it, mainly for the purpose of unit testing.
In his answer, Steven provided a couple of useful extension methods to get the metadata of a method using lambda expression and then check whether an attribute with the specified type has been applied to it:
public static MethodInfo GetMethod<T>(this T instance, Expression<Func<T, object>> methodSelector) { // Note: this is a bit simplistic implementation. It will // not work for all expressions. return ((MethodCallExpression)methodSelector.Body).Method; } public static MethodInfo GetMethod<T>(this T instance, Expression<Action<T>> methodSelector) { return ((MethodCallExpression)methodSelector.Body).Method; } public static bool HasAttribute<TAttribute>(this MemberInfo member) where TAttribute : Attribute { var attributes = member.GetCustomAttributes(typeof(TAttribute), true); return attributes.Length > 0; }
Nice, eh? I thought so too! Don’t forget to give him some much deserved up vote!
Whenever you’re ready, here are 3 ways I can help you:
- Production-Ready Serverless: Join 20+ AWS Heroes & Community Builders and 1000+ other students in levelling up your serverless game. This is your one-stop shop for quickly levelling up your serverless skills.
- I help clients launch product ideas, improve their development processes and upskill their teams. If you’d like to work together, then let’s get in touch.
- Join my community on Discord, ask questions, and join the discussion on all things AWS and Serverless.