string GetLanguageSpecificName(Language language, IMemberDefinition member, bool fullName = false)
{
switch (member)
{
case TypeDefinition t:
return(language.TypeToString(t, fullName));
case FieldDefinition f:
return(fullName ? language.TypeToString(f.DeclaringType, fullName) + "." + language.FormatFieldName(f) : language.FormatFieldName(f));
case PropertyDefinition p:
return(fullName ? language.TypeToString(p.DeclaringType, fullName) + "." + language.FormatPropertyName(p) : language.FormatPropertyName(p));
case MethodDefinition m:
return(fullName ? language.TypeToString(m.DeclaringType, fullName) + "." + language.FormatMethodName(m) : language.FormatMethodName(m));
case EventDefinition e:
return(fullName ? language.TypeToString(e.DeclaringType, fullName) + "." + language.FormatEventName(e) : language.FormatEventName(e));
default:
throw new NotSupportedException(member?.GetType() + " not supported!");
}
}