public SingleFactory(ProjectionOptions options)
     : base(options)
 {
     var name = GenerateAssemblyName(NamePrefix, NameSuffixLength);
     assembly = CreateProjectionAssembly(name);
 }
        protected ProjectionAssembly CreateProjectionAssembly(string name)
        {
            var assembly = new ProjectionAssembly(name, options);

            if (0 != (options & ProjectionOptions.SaveAssemblies))
                unsaved.Enqueue(assembly);

            return assembly;
        }
 public override ProjectionAssembly GetAssembly(Type type)
 {
     if (count == 0 || count >= limit)
     {
         var name = GenerateAssemblyName(NamePrefix, NameSuffixLength);
         module   = CreateProjectionAssembly(name);
         count    = 1;
     }
     return module;
 }