internal static string Format(string message, params object[] formatArguments)
{
if(formatArguments == null || !formatArguments.Any())
return message;
// check if first element is not scalar - format with named placeholders
var first = formatArguments.First();
return !first.GetType().IsSimpleType()
? FormatWithAnonymousObject(message, first)
: string.Format(message, formatArguments);
}