public override bool CompileTimeValidate(MethodBase method)
{
if (method == null) throw new ArgumentNullException("method");
if (method.Name.Contains("ToString"))
return false;
if (typeof(ILogger).IsAssignableFrom(_declaringType))
return false;
if (typeof(IConfigurationProvider).IsAssignableFrom(_declaringType))
return false;
if (typeof(MessageFormatter).IsAssignableFrom(_declaringType))
return false;
if (method.DeclaringType == GetType())
return false;
if ((Excludes & Excludes.StaticConstructor) == Excludes.StaticConstructor && method.Name.StartsWith(".cctor", StringComparison.OrdinalIgnoreCase))
return false;
if ((Excludes & Excludes.InstanceConstructors) == Excludes.InstanceConstructors && method.Name.StartsWith(".ctor", StringComparison.OrdinalIgnoreCase))
return false;
if ((Excludes & Excludes.PropertyGetters) == Excludes.PropertyGetters && method.Name.StartsWith("get_", StringComparison.OrdinalIgnoreCase))
return false;
if ((Excludes & Excludes.PropertySetters) == Excludes.PropertySetters && method.Name.StartsWith("set_", StringComparison.OrdinalIgnoreCase))
return false;
return true;
}