コード例 #1
0
        void ProcessMapObjectMetadata(FieldInfo fieldInfo, ElementMetadata elem)
        {
            var mapType   = fieldInfo.TypeName + "Map";
            var innerElem = GetOrCreateMetadata(mapType);

            foreach (var f in fieldInfo.MapFields)
            {
                innerElem.AddField(new FieldInfo($"{f}!{fieldInfo.TypeName}"), DataType.Undefined);
            }
            elem.AddField(new FieldInfo($"{fieldInfo.PropertyName}!{mapType}"), DataType.Undefined);
        }
コード例 #2
0
        void ProcessComplexMetadata(FieldInfo fieldInfo, ElementMetadata elem, DataType dt, Int32 fieldLen)
        {
            // create metadata for nested type
            var innerElem = GetOrCreateMetadata(fieldInfo.TypeName);
            var fna       = fieldInfo.PropertyName.Split('.');

            if (fna.Length != 2)
            {
                throw new DataLoaderException($"Invalid complex name {fieldInfo.PropertyName}");
            }
            elem.AddField(new FieldInfo($"{fna[0]}!{fieldInfo.TypeName}"), DataType.Undefined);
            innerElem.AddField(new FieldInfo(fieldInfo, fna[1]), dt, fieldLen);
        }