Example #1
0
        public DataColumn BuildColumn(DataField field, Array classInstances, int classInstancesCount)
        {
            Array        data      = Array.CreateInstance(field.ClrNullableIfHasNullsType, classInstancesCount);
            CollectorTag tag       = GetCollectorTag(new TypeCachingKey(_classType, field));
            int          collected = tag.Collect(classInstances, data, classInstancesCount);

            return(new DataColumn(field, data));
        }
Example #2
0
        private CollectorTag GetCollectorTag(TypeCachingKey key)
        {
            if (!_collectorKeyToTag.TryGetValue(key, out CollectorTag value))
            {
                value = new CollectorTag
                {
                    Collect = CreateCollectorDelegate(key.ClassType, key.Field)
                };

                _collectorKeyToTag[key] = value;
            }

            return(value);
        }