private static Expression ResolveEncodedWriter(ParameterExpression writerParameter, ITextEncoder textEncoder) { var outputEncoderExpression = Expression.Constant(textEncoder, typeof (ITextEncoder)); #if netstandard var encodedWriterFromMethod = typeof(EncodedTextWriter).GetRuntimeMethod("From", new[] { typeof(TextWriter), typeof(ITextEncoder) }); #else var encodedWriterFromMethod = typeof(EncodedTextWriter).GetMethod("From", new[] {typeof (TextWriter), typeof (ITextEncoder)}); #endif return Expression.Call(encodedWriterFromMethod, writerParameter, outputEncoderExpression); }
public static EncodedTextWriter From(TextWriter writer, ITextEncoder encoder) { var encodedTextWriter = writer as EncodedTextWriter; return encodedTextWriter ?? new EncodedTextWriter(writer, encoder); }
public EncodedTextWriter(TextWriter writer, ITextEncoder encoder) { _underlyingWriter = writer; _encoder = encoder; }
private static ITextEncoder setIndexEncoding(string name, ITextEncoder enc) { lock(syncRoot){ indexEncodingMap.Add(name,enc); } return enc; }
/** * * Utility method to write a _string to an output byte stream. * * @param str string. If null, * Any unpaired surrogates in the _string are kept intact in the * input to the encoder. * @param output a stream for writing converted bytes to. * If null, * @param encoder Encoder for converting Unicode characters * to bytes. * If null, * @param error Error handler called when a Unicode character * cannot be converted to bytes. You * can use TextEncoding.ENCODING_ERROR_THROW or * TextEncoding.ENCODING_ERROR_REPLACE for this. * If null, * @ if the error handler exception * or another I/O error occurs */ public static void encodeString( string str, Stream output, ITextEncoder encoder, IEncodingError error) { if(str==null || encoder==null || output==null || error==null) throw new ArgumentException(); int[] data=new int[1]; int length=str.Length; for(int i=0;i<length;i++){ int c=str[i]; if(c>=0xD800 && c<=0xDBFF && i+1<length && str[i+1]>=0xDC00 && str[i+1]<=0xDFFF){ // Get the Unicode code point for the surrogate pair c=0x10000+(c-0xD800)*0x400+(str[i+1]-0xDC00); i++; } data[0]=c; encoder.encode(output,data,0,1,error); } }
private static Expression ResolveEncodedWriter(ParameterExpression writerParameter, ITextEncoder textEncoder) { var outputEncoderExpression = Expression.Constant(textEncoder, typeof(ITextEncoder)); #if netstandard var encodedWriterFromMethod = typeof(EncodedTextWriter).GetRuntimeMethod("From", new[] { typeof(TextWriter), typeof(ITextEncoder) }); #else var encodedWriterFromMethod = typeof(EncodedTextWriter).GetMethod("From", new[] { typeof(TextWriter), typeof(ITextEncoder) }); #endif return(Expression.Call(encodedWriterFromMethod, writerParameter, outputEncoderExpression)); }
public SecureTokenFormatter(string key) { this.serializer = new TicketSerializer(); this.protector = new OAuthDataProtector(key); this.encoder = TextEncodings.Base64Url; }