Каков наилучший способ передачи изображения на C#?Каков наилучший способ передачи изображения через webservice в C#?
- Растровый объект
- байтовый массив объектов
- изображение?
Каков наилучший способ передачи изображения на C#?Каков наилучший способ передачи изображения через webservice в C#?
Не существует единого «наилучшего» способа. Если бы это было так, то, вероятно, был бы только один путь. Это зависит от вашей ситуации, потребностей и приоритетов.
Сказанное, я использую кодировку Base64 каждый шанс получить, потому что это весело и легко! :)
этот ответ сделал меня lol. – tster
Я недавно внедренная это с помощью службы WCF и решили использовать Byte [] в качестве способа транспортировки файла, как это было довольно просто реализовать:
public byte[] DownloadFile(string fileName)
{
var stream = System.IO.File.OpenRead(fileName);
byte[] fileContent = new byte[stream.Length];
stream.Read(fileContent, 0, fileContent.Length);
return fileContent;
}
Пример выше упрощен, как я не передавая имя файла непосредственно к службе WCF, но я уверен, что вы получите общее представление =)
в WCF вы можете вернуть объект потока из метода:
public Stream GetImage(string name)
{ ... }
Если у вас есть чистый протокол на основе SOAP, вам нужно будет придерживаться примитивов, таких как byte []. Это неэффективный вариант, но на самом деле это не лучший способ. Возможно, вам придется сегментировать файл в нескольких частях, чтобы это работало для всех клиентов. Некоторые клиенты SOAP не позволят больших ответов, поэтому мы использовали для ответа на 30 тыс. Штук.
Лучший способ передачи изображения - не использовать ни один из приведенных выше действий, скорее выполнить HTTP-запрос непосредственно к изображению и избежать всего этого. Это то, что мы используем сейчас, без кодирования, без обработки клиента, напрямую передается на диск. Вам нужно будет изучить конкретный вариант использования, чтобы определить, можно ли это применить.
Вы также можете вернуть только URL-адрес изображения, а затем позволить клиенту выполнить необработанный HTTP-вызов возвращенного URL-адреса для получения изображения.
Благодаря
VM
нет, если о передаче изображения на другой сервер/услугу – BerggreenDK
Какие веб-сервиса вы имеете в виду? Унаследованная служба «.asmx» или служба WCF «.svc»? – Rob