System.Web.HttpResponseStream.Write C# (CSharp) Method

Write() public method

public Write ( byte buffer, int offset, int count ) : void
buffer byte
offset int
count int
return void
		public override void Write (byte [] buffer, int offset, int count)
		{
			bool buffering = response.BufferOutput;

#if NET_2_0
			if (buffer == null)
				throw new ArgumentNullException ("buffer");
#endif

			int max_count = buffer.Length - offset;
#if NET_2_0
			if (offset < 0 || max_count <= 0)
#else
			if (offset < 0)
#endif
				throw new ArgumentOutOfRangeException ("offset");
			if (count < 0)
				throw new ArgumentOutOfRangeException ("count");
			if (count > max_count)
				count = max_count;
#if ONLY_1_1
			if (max_count <= 0)
				return;
#endif

			if (buffering) {
				// It does not matter whether we're in ApplyFilter or not
				AppendBuffer (buffer, offset, count);
			} else if (filter == null || filtering) {
				response.WriteHeaders (false);
				HttpWorkerRequest wr = response.WorkerRequest;
				// Direct write because not buffering
				if (offset == 0) {
					wr.SendResponseFromMemory (buffer, count);
				} else {
					UnsafeWrite (wr, buffer, offset, count);
				}
				wr.FlushResponse (false);
			} else {
				// Write to the filter, which will call us back, and then Flush
				filtering = true;
				try {
					filter.Write (buffer, offset, count);
				} finally {
					filtering = false;
				}
				Flush (response.WorkerRequest, false);
			}
		}

Usage Example

Example #1
0
        public override void Write(char [] buffer, int index, int count)
        {
            if (buffer == null || index < 0 || count < 0 || (buffer.Length - index) < count)
            {
                throw new ArgumentOutOfRangeException();
            }
            int length = encoding.GetMaxByteCount(count);

            byte [] bytebuffer = GetByteBuffer(length);
            int     realLength = encoding.GetBytes(buffer, index, count, bytebuffer, 0);

            output_stream.Write(bytebuffer, 0, realLength);
            if (response.buffer)
            {
                return;
            }

            response.Flush();
        }
All Usage Examples Of System.Web.HttpResponseStream::Write