public AnalyzerDetails(string className,
AnalyzerCategoryDetails category,
DefaultState defaultState,
DiagnosticSeverity severity,
string titleResourceName,
string descriptionResourceName,
string messageFormatResourceName,
IList<Type> suppressionAttributes)
{
var decomposedDetails = DecomposeDetailsFromClassName(className);
var code = decomposedDetails.Item1;
Name = decomposedDetails.Item2;
NameWithCode = $"{decomposedDetails.Item3} - {Name}";
Category = category;
_defaultState = defaultState;
Severity = severity;
SuppressionAttributes = suppressionAttributes;
Title = LocalizableStringFactory.LocalizableResourceString(titleResourceName);
Description = LocalizableStringFactory.LocalizableResourceString(descriptionResourceName);
MessageFormat = LocalizableStringFactory.LocalizableResourceString(messageFormatResourceName);
DiagnosticId = Title.ToString().Replace("-", "");
if (Title.ToString() != code)
{
throw new ArgumentException($@"Title resource value isn't of the correct format: should be {code}",
nameof(titleResourceName));
}
}