В настоящее время я пытаюсь создать службу, которая будет возвращать результаты запроса куба OLAP в службе данных C # / WCF.Я делаю это, чтобы получить полный программный контроль над тем, как сериализуются результаты OLAP, как клиенты аутентифицируются / авторизуются, и чтобы можно было напрямую запрашивать кубы из javascript на веб-сайте.
Результаты запросов OLAP могутиметь любое количество измерений (реально где-то от 1 до 5 макс).Проблема, с которой я столкнулся, заключается в том, что я не могу понять, как сначала создать зубчатый массив с динамическим числом измерений без жесткой кодировки обработки каждого числа измерений, которые я, возможно, буду использовать.Итак, первый квест: существует ли элегантный способ создания зубчатого массива с динамическим числом измерений в C #?
Если у меня есть этот массив динамического числа измерений, можно ли затем сериализовать его в json с помощью DataContractJsonSerializer (или любого другого свободно доступного сериализатора json).Цель состоит в том, чтобы сериализовать это в объект, который выглядит примерно так для двумерных результатов:
{
"DimensionMemberCaptions" = [["Dim1 member1", "Dim2 member2"], ["Dim2 member1"], ["Dim2 member2"]],
"Data" = [[1, 2],
[3, 4]],
"FormatedData = [["1$", "2$"],
["3$", "4$"]]
}
Где DimensionMemberCaptions содержат заголовки для каждого измерения (имена элементов OLAP), а data / formateddata представляет собой таблицурезультаты.
Я хотел бы избежать написания своих собственных функций сериализации, но со временем это кажется более привлекательным - использование массива (многомерный массив вместо зубчатых) и написание собственного сериализатора json специально дляцель сериализации вывода OLAP в поток, возвращаемый методом REST WCF.