2
Я использую этот код для копирования данных из массива объектов 2d в поток памяти. В потоке памяти отображается количество данных, которое было прочитано из массива 2d. Но в итоге я получаю пустую строку. Я не понимаю, почему. Однако, используя soapformatter, строка не пуста, но она заключена в формат мыла, поэтому это не полезно. Вот код с BinaryFormatter.Поток памяти с 2d-массивом
Worksheet sheet = (Worksheet)workBookIn.Sheets[1];
Range excelRange = sheet.UsedRange;
object[,] valueArray = (object[,])excelRange.get_Value(
XlRangeValueDataType.xlRangeValueDefault);
using (var ms = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
//valueArray = 2d object array
formatter.Serialize(ms, valueArray);
ms.Position = 0;
return Encoding.UTF8.GetString(ms.ToArray());
}
Вы не можете сериализацию массива, а затем ожидать, что она возвращает строку. Форматировщик хранит больше, чем просто фактическое содержимое массива. Я подозреваю, что вы на самом деле хотите просто поместить значения массива в строку, поэтому вам не следует использовать бинарный форматировщик. – MicroVirus
Спасибо. Что мне тогда использовать? Как получить значения из массива объектов 2d в строку? Пожалуйста, помогите. – automationFormation
Это зависит от того, нужно ли знать определение 'valueArray', так что вы можете изменить его в своем вопросе? – MicroVirus