Я хочу отправить двоичный файл компоненту .net c # в следующем формате xml
<BinaryFileString fileType='pdf'>
<!--binary file data string here-->
</BinaryFileString>
В вызываемом компоненте я буду использовать приведенную выше строку xml и преобразовать двоичную строку, полученную в теге BinaryFileString, в файл, указанный в атрибуте filetype = ''. Тип файла может быть doc / pdf / xls / rtf
У меня есть код в вызывающем приложении, чтобы получить байты из файла для отправки. Как мне подготовить его для отправки с тегами xml, обернутыми вокруг него? Я хочу, чтобы приложение отправляло строку компоненту, а не поток байтов. Это потому, что я никак не могу расшифровать тип файла [pdf / doc / xls], просто взглянув на поток байтов. Отсюда и строка xml с атрибутом filetype. Есть идеи по этому поводу?
метод извлечения байтов ниже
FileStream fs = new FileStream(_filePath, FileMode.Open, FileAccess.Read);
using (Stream input = fs)
{
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{}
}
return buffer;
Спасибо.
Edit:
Просто чтобы уточнить, почему я использую строку XML, а не задаю свойства для своего компонента. На самом деле мое приложение для вызова пытается смоделировать, как Siebel будет вызывать мой компонент.
http://download.oracle.com/docs/cd/E05553_01/books/eScript/eScript_JSReference244.html#wp1014380
Я не уверен, что Siebel может установить свойства моих компонентов так, как мне нужно. Так что я работаю над углом отправки данных в формате XML.