読み取り専用配列を作るには。

ReadOnlyCollectionが有効。

public class ReadOnlyCollection<T> : ReadOnlyCollectionBase {
	public ReadOnlyCollection( IList<T> sourceList ) {
		InnerList.AddRange( (ICollection)sourceList );
	}

	public T this[int index] {
		get {
			return (T)InnerList[index];
		}
	}

	public int IndexOf( T value ) {
		return ( InnerList.IndexOf( value ) );
	}

	public bool Contains( T value ) {
		return ( InnerList.Contains( value ) );
	}
}

読み取り専用バイト配列。

ReadOnlyCollection<byte> buffer = new ReadOnlyCollection<byte>(
	new byte[] { 6, 7, 8, 9 }
);