protected object[] GetArgumentsToUse(IFormatProvider formatProvider) { object[] argumentsToUse = null; for (int i = 0; i < _arguments.Length; i++) { var embedded = _arguments[i] as DiagnosticInfo; if (embedded != null) { argumentsToUse = InitializeArgumentListIfNeeded(argumentsToUse); argumentsToUse[i] = embedded.GetMessage(formatProvider); continue; } var symbol = _arguments[i] as ISymbol; if (symbol != null) { argumentsToUse = InitializeArgumentListIfNeeded(argumentsToUse); argumentsToUse[i] = _messageProvider.ConvertSymbolToString(_errorCode, symbol); } } return(argumentsToUse ?? _arguments); }