Взять в переменную, а не прямой путь к файлу? - PullRequest
0 голосов
/ 01 ноября 2010

Я не уверен, как на самом деле задать этот вопрос ...

REF: http://qif.codeplex.com/

Этот API принимает путь к файлу, могу ли я получить его впеременная вместо?двоичный файл или строковое содержимое файла?

1 Ответ

1 голос
/ 01 ноября 2010

Не напрямую, но есть перегрузка ImportFile, которая занимает StreamReader, поэтому вы можете сделать что-то подобное:

  • Если у вас есть содержимое в виде байтамассив:

    byte[] contentBytes = ...
    QifDom qifDom;
    using (Stream stream = new MemoryStream(contentBytes))
    using (StreamReader reader = new StreamReader(stream))
    {
        qifDom = QifDom.ImportFile();
    }
    
  • Если у вас есть содержимое в виде строки:

    string content = ...
    byte[] contentBytes = Encoding.UTF8.GetBytes(content);
    QifDom qifDom;
    using (Stream stream = new MemoryStream(contentBytes))
    using (StreamReader reader = new StreamReader(stream))
    {
        qifDom = QifDom.ImportFile();
    }
    

(Кстати, плохой дизайн API... параметр должен был быть TextReader, а не StreamReader, поэтому мы могли бы использовать StringReader вместо преобразования строки в байты)

Кроме того, обратите внимание, что пример на домашней страниценеверно (отсутствует свойство QifDom.Import)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...