Example #1
0
        public L GenerateValue()
        {
            IGeneratable <T> generator = generators.GetGenerator <T>(typeof(T));

            Type unboundList = typeof(L).GetGenericTypeDefinition();
            L    result      = (L)Activator.CreateInstance(unboundList.MakeGenericType(typeof(T)));

            byte       listSize = (byte)generators.GenerateValue <byte>(typeof(byte));
            MethodInfo add      = typeof(L).GetMethod("Add");

            if (add == null)
            {
                return(result);
            }
            for (int i = 0; i < listSize; i++)
            {
                add.Invoke(result, new object[] { generator.GenerateValue() });
            }

            return(result);
        }