コード例 #1
0
        private object GenerateArrayWithValues(BuilderContext context)
        {
            var type = context.CurrentProperty.PropertyType;
            var collectionItemType = type.GetElementType() ?? type.GetTypeInfo().GenericTypeArguments.First();

            var generator   = ValueGeneratorFactory.GetValueGenerator(collectionItemType);
            var returnValue = Array.CreateInstance(collectionItemType, context.CollectionDegree);

            context.SetCurrentValueGeneratorType(collectionItemType);

            for (var i = 0; i < context.CollectionDegree; i++)
            {
                returnValue.SetValue(generator.GenerateValue(context), i);
            }

            return(returnValue);
        }
コード例 #2
0
        private object GenerateIEnumerableWithValues(BuilderContext context)
        {
            var type = context.CurrentProperty.PropertyType;
            var collectionItemType = type.GetElementType() ?? type.GetTypeInfo().GenericTypeArguments.First();
            var genericListType    = typeof(List <>).MakeGenericType(collectionItemType);

            var generator   = ValueGeneratorFactory.GetValueGenerator(collectionItemType);
            var returnValue = (IList)Activator.CreateInstance(genericListType);

            context.SetCurrentValueGeneratorType(collectionItemType);

            for (var i = 0; i < context.CollectionDegree; i++)
            {
                returnValue.Add(generator.GenerateValue(context));
            }

            return(returnValue);
        }