private void Decode(out char[] chars, out List<byte[]> invalidCharacters) { #if SILVERLIGHT chars = _owner.Encoding.Encoding.GetChars(_data, 0, _count); invalidCharacters = null; #else Decoder decoder = _owner.Encoding.Encoding.GetDecoder(); var fallback = new LosslessDecoderFallback(); decoder.Fallback = fallback; // TODO: split into chunks for large strings? fallback.Track = true; chars = new char[decoder.GetCharCount(_data, 0, _count, true)]; fallback.Track = false; decoder.GetChars(_data, 0, _count, chars, 0, true); invalidCharacters = fallback.InvalidCharacters; #endif }
internal Buffer(LosslessDecoderFallback/*!*/ fallback) { Assert.NotNull(fallback); _fallback = fallback; }
internal Buffer(LosslessDecoderFallback /*!*/ fallback) { Assert.NotNull(fallback); _fallback = fallback; }