Abstract structure
The Qlik Sense .NET SDK for Qlik Sense is a wrapper for the Qlik Engine JSON API that makes it possible to deal with traffic to and from the engine in a C# environment. The Qlik Engine JSON API is based on JSON-RPC, which implies that all data is passed to and from the engine in the form of JSON objects. JSON is an inherently dynamic structure with very little native type information, which is very different from how C# treats data. The abstract structure concept in the Qlik Sense .NET SDK has been introduced to provide a means for operating on JSON objects in a typed environment like C#, but still leave room for dynamic operations on the structures.
The main motivation for the abstract structure concept is to provide a feature that makes it possible for the user to explicitly, and dynamically, state how to interpret a JSON object in the form of a C# class. A typical application of this is to deal with information in master objects.
When a master object is opened through the Qlik Sense .NET SDK , it returns in the form of an object of the type Qlik Sense.Client.MasterObject, and its properties will be of the type MasterObjectProperties. However, the properties of the master object will always reflect the properties of the object from which it was created. For example, a master object created from a bar chart will have bar chart properties, and a master object created from a line chart will have line chart properties. To interact with the properties of a master object in C# one therefore usually wants to interpret those properties as if it was of the type from which the master object was created. The AbstractStructure feature makes this possible by providing a way of taking an object of type MasterObjectProperties and reinterpreting it as being of a specific visualization type, for instance BarchartProperties.