У меня есть object
, который имеет тип Array
(то есть object.GetType().IsArray
возвращает true). Мой вопрос в том, как я могу узнать, является ли это зубчатым или многомерным массивом? Есть ли способ сериализации массива, чтобы код «не знал» разницу (используя отражение)?Сериализация зубчатых и многомерных массивов
Обратите внимание, что массив имеет произвольную длину/размерность. Я думал, что могу, возможно, разобрать Type.Name
, чтобы найти [,
(как в одной части [,,]
) или [][]
, чтобы различать их, но это все равно означает, что у меня будет два пути кода для каждого случая, и я чувствую, что быть лучшим способом добиться этого, чем имена типов синтаксического анализа.
Для массива с зазубринами достаточно легко взять массив, а затем продолжать индексировать его с помощью []
, чтобы перебрать все элементы, однако этот подход не работает для многомерных массивов.
Вы пишете собственный механизм сериализации? почему бы не использовать один из нескольких вариантов, встроенных в инфраструктуру .net? –
Это в основном учебное упражнение :) – nickolayratchev
Попробуйте изучить параметры настройки DataContractSerializer – Saravanan