XmlWriter.WriteBinHex(Byte[], Int32, Int32) Метод

Определение

При переопределении в производном классе преобразует указанный набор двоичных байтов как BinHex и выводит получившийся текст.When overridden in a derived class, encodes the specified binary bytes as BinHex and writes out the resulting text.

public:
 virtual void WriteBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public:
 abstract void WriteBinHex(cli::array <System::Byte> ^ buffer, int index, int count);
public virtual void WriteBinHex (byte[] buffer, int index, int count);
public abstract void WriteBinHex (byte[] buffer, int index, int count);
abstract member WriteBinHex : byte[] * int * int -> unit
override this.WriteBinHex : byte[] * int * int -> unit
abstract member WriteBinHex : byte[] * int * int -> unit
Public Overridable Sub WriteBinHex (buffer As Byte(), index As Integer, count As Integer)
Public MustOverride Sub WriteBinHex (buffer As Byte(), index As Integer, count As Integer)

Параметры

buffer
Byte[]

Кодируемый массив байтов.Byte array to encode.

index
Int32

Позиция в буфере, с которой начинается запись байтов.The position in the buffer indicating the start of the bytes to write.

count
Int32

Количество записываемых байтов.The number of bytes to write.

Исключения

buffer имеет значение null.buffer is null.

Средство записи закрыто или находится в состоянии ошибки.The writer is closed or in error state. -или--or-

Метод XmlWriter вызван перед завершением предыдущей асинхронной операции.An XmlWriter method was called before a previous asynchronous operation finished. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Значение параметра index или count меньше нуля.index or count is less than zero.

-или--or- Длина буфера минус index меньше count.The buffer length minus index is less than count.

Примеры

В следующем примере используется WriteBinHex метод для записи BinHex данных.The following example uses the WriteBinHex method to write BinHex data. BinHexДанные внедряются в <image> элемент.The BinHex data is embedded within an <image> element.


public static void BinHexEncodeImageFile() {

  int bufferSize = 1000;
  byte[] buffer = new byte[bufferSize];
  int readBytes = 0;
    
  using (XmlWriter writer = XmlWriter.Create("output.xml")) {
       FileStream inputFile = new FileStream(@"C:\artFiles\sunset.jpg", FileMode.OpenOrCreate,
                                                                    FileAccess.Read, FileShare.Read);
       writer.WriteStartDocument();
       writer.WriteStartElement("image");
       BinaryReader br = new BinaryReader(inputFile);
       Console.WriteLine("\r\nWriting BinHex data...");

       do {
          readBytes = br.Read(buffer, 0, bufferSize);
          writer.WriteBinHex(buffer, 0, readBytes);
       } while (bufferSize <= readBytes);
       br.Close();

    writer.WriteEndElement();// </image>
    writer.WriteEndDocument();
  }
}
Public Shared Sub BinHexEncodeImageFile() 
    
    Dim bufferSize As Integer = 1000
    Dim buffer(bufferSize) As Byte
    Dim readBytes As Integer = 0
    
    Using writer As XmlWriter = XmlWriter.Create("output.xml")

            Dim inputFile As New FileStream("C:\artFiles\sunset.jpg", FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read)
            writer.WriteStartDocument()
            writer.WriteStartElement("image")
            Dim br As New BinaryReader(inputFile)
            Console.WriteLine(vbCr + vbLf + "Writing BinHex data...")
            
            Do
                readBytes = br.Read(buffer, 0, bufferSize)
                writer.WriteBinHex(buffer, 0, readBytes)
            Loop While bufferSize <= readBytes
            br.Close()

        writer.WriteEndElement() ' </image>
        writer.WriteEndDocument()

    End Using
 
End Sub

Комментарии

Асинхронную версию этого метода см. в разделе WriteBinHexAsync .For the asynchronous version of this method, see WriteBinHexAsync.

Применяется к