demo.sinch.com.Areas.HelpPage.SampleGeneration.ObjectGenerator.GenerateCollection C# (CSharp) Method

GenerateCollection() private static method

private static GenerateCollection ( Type collectionType, int size, object>.Dictionary createdObjectReferences ) : object
collectionType System.Type
size int
createdObjectReferences object>.Dictionary
return object
        private static object GenerateCollection(Type collectionType, int size,
            Dictionary<Type, object> createdObjectReferences) {
            var type = collectionType.IsGenericType
                ? collectionType.GetGenericArguments()[0]
                : typeof (object);
            var result = Activator.CreateInstance(collectionType);
            var addMethod = collectionType.GetMethod("Add");
            var areAllElementsNull = true;
            var objectGenerator = new ObjectGenerator();
            for (var i = 0; i < size; i++)
            {
                var element = objectGenerator.GenerateObject(type, createdObjectReferences);
                addMethod.Invoke(result, new[] {element});
                areAllElementsNull &= element == null;
            }

            if (areAllElementsNull)
            {
                return null;
            }

            return result;
        }