public override void CreateDomains(
            IList<IDomain> domains, 
            ParameterInfo parameter, 
            IFixture fixture)
        {
            bool isString = parameter.ParameterType.IsAssignableFrom(typeof(string));
            List<Object> data = new List<Object>();
            foreach (string memberName in this.Values.Split(';'))
            {
                object cresult = null;
                if (isString)
                    cresult = memberName.ToString();
                else
                    cresult = Convert.ChangeType(memberName, parameter.ParameterType);
                data.Add(cresult);
            }
            if (data.Count == 0)
                return;

            CollectionDomain domain = new CollectionDomain(data);
            domains.Add(domain);
        }
        public override void CreateDomains(
            IList<IDomain> domains,
            ParameterInfo parameter, 
            IFixture fixture)
        {
            List<Object> types = new List<Object>();
            foreach (Type type in typeFromAssembly.Assembly.GetExportedTypes())
            {
                if (type.IsAbstract || type.IsInterface || !type.IsClass)
                    continue;

                if (!parameter.ParameterType.IsAssignableFrom(type))
                    continue;

                // create instance
                Object instance = Activator.CreateInstance(type);
                types.Add(instance);
            }

            CollectionDomain domain = new CollectionDomain(types);
            domain.Name = typeFromAssembly.Assembly.GetName().Name;
            domains.Add(domain);
        }