| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | using System;namespace MECF.Framework.Common.Communications.Tcp.Buffer{    public class BufferValidator    {        public static void ValidateBuffer(byte[] buffer, int offset, int count,            string bufferParameterName = null,            string offsetParameterName = null,            string countParameterName = null)        {            if (buffer == null)            {                throw new ArgumentNullException(!string.IsNullOrEmpty(bufferParameterName) ? bufferParameterName : "buffer");            }            if (offset < 0 || offset > buffer.Length)            {                throw new ArgumentOutOfRangeException(!string.IsNullOrEmpty(offsetParameterName) ? offsetParameterName : "offset");            }            if (count < 0 || count > (buffer.Length - offset))            {                throw new ArgumentOutOfRangeException(!string.IsNullOrEmpty(countParameterName) ? countParameterName : "count");            }        }        public static void ValidateArraySegment<T>(ArraySegment<T> arraySegment, string arraySegmentParameterName = null)        {            if (arraySegment.Array == null)            {                throw new ArgumentNullException((!string.IsNullOrEmpty(arraySegmentParameterName) ? arraySegmentParameterName : "arraySegment") + ".Array");            }            if (arraySegment.Offset < 0 || arraySegment.Offset > arraySegment.Array.Length)            {                throw new ArgumentOutOfRangeException((!string.IsNullOrEmpty(arraySegmentParameterName) ? arraySegmentParameterName : "arraySegment") + ".Offset");            }            if (arraySegment.Count < 0 || arraySegment.Count > (arraySegment.Array.Length - arraySegment.Offset))            {                throw new ArgumentOutOfRangeException((!string.IsNullOrEmpty(arraySegmentParameterName) ? arraySegmentParameterName : "arraySegment") + ".Count");            }        }    }}
 |