private static IMockDataProvider[] GetProviders(Random rnd)
        {
            // The order between generators may be important.

            var counter = new ObjectDepthCounter(depthThreshold: 5);
            var providers = new List<IMockDataProvider>();

            providers.Add(new SchemaExampleProvider());

            
            providers.Add(new EnumProvider(rnd));

            providers.Add(new PrimitiveProvider(rnd));
            providers.Add(new AnyProvider());

            providers.Add(new GuidProvider());
            providers.Add(new Base64Provider());
            providers.Add(new DateTimeProvider());
            providers.Add(new TextProvider(rnd));

            providers.Add(new ArrayProvider(providers));

            providers.Add(new CombinedSchemaDataProvider(providers, rnd));
            providers.Add(new ObjectProvider(providers, counter));

            return providers.ToArray();
        }
 public ObjectProvider(IReadOnlyCollection <IMockDataProvider> providers, ObjectDepthCounter counter)
 {
     Providers    = providers;
     DepthCounter = counter;
 }