コード例 #1
0
        /// <summary>
        /// Get the text of the message in the given language.
        /// </summary>
        public virtual string GetMessage(IFormatProvider formatProvider = null)
        {
            // Get the message and fill in arguments.
            string message = _messageProvider.LoadMessage(_errorCode, formatProvider as CultureInfo);

            if (string.IsNullOrEmpty(message))
            {
                return(string.Empty);
            }

            if (_arguments == null || _arguments.Length == 0)
            {
                return(message);
            }
#if XSHARP
            var result = String.Format(formatProvider, message, GetArgumentsToUse(formatProvider));
            result = result.Replace("'void*'", "'PTR'");
            result = result.Replace("'XSharp.__Usual'", "'USUAL'");
            result = result.Replace("'XSharp.__Date'", "'DATE'");
            result = result.Replace("'XSharp.__Float'", "'FLOAT'");
            result = result.Replace("'XSharp.__Array'", "'ARRAY'");
            result = result.Replace("'XSharp.__Symbol'", "'SYMBOL'");
            result = result.Replace("'XSharp.__Psz'", "'PSZ'");
            return(result);
#else
            return(String.Format(formatProvider, message, GetArgumentsToUse(formatProvider)));
#endif
        }
コード例 #2
0
        private static void AssertExpectedMessageArgumentsLength(CommonMessageProvider messageProvider, int errorCode, int actualLength)
        {
#if DEBUG
            if (!messageProvider.ShouldAssertExpectedMessageArgumentsLength(errorCode))
            {
                return;
            }
            string message        = messageProvider.LoadMessage(errorCode, language: null);
            var    matches        = Regex.Matches(message, @"\{\d+[}:]");
            int    expectedLength = 0;
            var    bits           = BitVector.Create(actualLength);
            foreach (object?m in matches)
            {
                if (m is Match match)
                {
                    int value = int.Parse(match.Value[1..^ 1]);
コード例 #3
0
ファイル: DiagnosticInfo.cs プロジェクト: khm1600/CJing
        /// <summary>
        /// Get the text of the message in the given language.
        /// </summary>
        public virtual string GetMessage(IFormatProvider formatProvider = null)
        {
            // Get the message and fill in arguments.
            string message = _messageProvider.LoadMessage(_errorCode, formatProvider as CultureInfo);

            if (string.IsNullOrEmpty(message))
            {
                return(string.Empty);
            }

            if (_arguments == null || _arguments.Length == 0)
            {
                return(message);
            }

            return(String.Format(formatProvider, message, GetArgumentsToUse(formatProvider)));
        }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
        /// <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);
            }

            return(String.Format(culture, message, GetArgumentsToUse(culture)));
        }