/// <summary> /// Get the text of the message in the given language. /// </summary> public virtual string GetMessage(CultureInfo culture = null) { if (culture == null) { culture = CultureInfo.InvariantCulture; } // Get the message and fill in arguments. string message = messageProvider.LoadMessage(errorCode, culture); if (string.IsNullOrEmpty(message)) { return(string.Empty); } if (arguments == null || arguments.Length == 0) { return(message); } object[] argumentsToUse = arguments; for (int i = 0; i < argumentsToUse.Length; i++) { DiagnosticInfo embedded = argumentsToUse[i] as DiagnosticInfo; if (embedded != null) { if (ReferenceEquals(argumentsToUse, arguments)) { argumentsToUse = new object[argumentsToUse.Length]; Array.Copy(arguments, argumentsToUse, argumentsToUse.Length); } argumentsToUse[i] = embedded.GetMessage(culture); } } return(String.Format(culture, message, argumentsToUse)); }
protected object[] GetArgumentsToUse(IFormatProvider formatProvider) { object[] argumentsToUse = null; for (int i = 0; i < _arguments.Length; i++) { DiagnosticInfo embedded = _arguments[i] as DiagnosticInfo; if (embedded != null) { argumentsToUse = InitializeArgumentListIfNeeded(argumentsToUse); argumentsToUse[i] = embedded.GetMessage(formatProvider); continue; } ISymbol symbol = _arguments[i] as ISymbol; if (symbol != null) { argumentsToUse = InitializeArgumentListIfNeeded(argumentsToUse); argumentsToUse[i] = _messageProvider.GetErrorDisplayString(symbol); } } return(argumentsToUse ?? _arguments); }