public bool TryGetDisplayName(DecodingOptions decodingOptions, out DecodingResults decodingResults, out string displayName) { this.AssertGood(true); return reader.TryReadDisplayName(topLevel, decodingOptions, out decodingResults, out displayName); }
public bool TryGetDisplayName(DecodingOptions decodingOptions, out DecodingResults decodingResults, out string displayName) { if (displayNameFragments.Count == 0) { displayName = decodedDisplayName; decodingResults = new DecodingResults(); return true; } if (decodingOptions.Charset == null) decodingOptions.Charset = this.GetDefaultHeaderDecodingCharset(null, null); return MimeCommon.TryDecodeValue(displayNameFragments, 4026531839U, decodingOptions, out decodingResults, out displayName); }
public bool TryGetValue(DecodingOptions decodingOptions, out DecodingResults decodingResults, out string value) { value = this.GetDecodedValue(decodingOptions, out decodingResults); if (!decodingResults.DecodingFailed) return true; value = null; return false; }
internal string GetDecodedValue(DecodingOptions decodingOptions, out DecodingResults decodingResults) { string str1 = null; if (this.Lines.Length == 0) { var str2 = decodedValue != null ? decodedValue : string.Empty; decodingResults = new DecodingResults(); return str2; } if (decodingOptions.Charset == null) decodingOptions.Charset = this.GetDefaultHeaderDecodingCharset(null, null); if (!MimeCommon.TryDecodeValue(this.Lines, 4026531840U, decodingOptions, out decodingResults, out str1)) str1 = null; return str1; }
internal static bool TryDecodeValue(MimeStringList lines, uint linesMask, DecodingOptions decodingOptions, out DecodingResults decodingResults, out string value) { decodingResults = new DecodingResults(); if (lines.GetLength(linesMask) == 0) { value = string.Empty; return true; } var decodingFlags = decodingOptions.DecodingFlags; var enableFallback = DecodingFlags.None != (DecodingFlags.FallbackToRaw & decodingFlags); var allowControlCharacters = DecodingFlags.None != (DecodingFlags.AllowControlCharacters & decodingFlags); var enable2047 = false; var enableJisDetection = false; var enableUtf8Detection = false; var enableDbcsDetection = false; Globalization.Charset defaultCharset = null; var valueDecoder = new ValueDecoder(lines, linesMask); if ((decodingFlags & DecodingFlags.AllEncodings) == DecodingFlags.None) { if (!enableFallback) defaultCharset = Globalization.Charset.ASCII; } else { enable2047 = DecodingFlags.None != (DecodingFlags.Rfc2047 & decodingFlags); enableJisDetection = DecodingFlags.None != (DecodingFlags.Jis & decodingFlags); enableUtf8Detection = DecodingFlags.None != (DecodingFlags.Utf8 & decodingFlags); enableDbcsDetection = DecodingFlags.None != (DecodingFlags.Dbcs & decodingFlags); defaultCharset = decodingOptions.Charset; } string charsetName; string cultureName; EncodingScheme encodingScheme; var flag = valueDecoder.TryDecodeValue( defaultCharset, enableFallback, allowControlCharacters, enable2047, enableJisDetection, enableUtf8Detection, enableDbcsDetection, out charsetName, out cultureName, out encodingScheme, out value); decodingResults.EncodingScheme = encodingScheme; decodingResults.CharsetName = charsetName; decodingResults.CultureName = cultureName; decodingResults.DecodingFailed = !flag; return flag; }
internal static void ThrowDecodingFailedException(ref DecodingResults decodingResults) { Globalization.Charset.GetEncoding(decodingResults.CharsetName); throw new ButlerSchemaException("internal value decoding error"); }