protected internal CompilerResults Compile(string assemblyNameToCreate, string writeSourceTo)
        {
            HashSet <string> references = new HashSet <string>(DaoGenerator.DefaultReferenceAssemblies.ToArray())
            {
                typeof(JsonIgnoreAttribute).Assembly.GetFileInfo().FullName
            };

            _additionalReferenceAssemblies.Each(asm =>
            {
                FileInfo assemblyInfo = asm.GetFileInfo();
                if (references.Contains(assemblyInfo.Name))
                {
                    references.Remove(assemblyInfo.Name); // removes System.Core.dll if it is later referenced by full path
                }
                references.Add(assemblyInfo.FullName);
            });
            SchemaDefinitionCreateResult.TypeSchema.Tables.Each(type =>
            {
                references.Add(type.Assembly.GetFileInfo().FullName);
                CustomAttributeTypeDescriptor attrTypes = new CustomAttributeTypeDescriptor(type);
                attrTypes.AttributeTypes.Each(attrType => references.Add(attrType.Assembly.GetFileInfo().FullName));
            });
            references.Add(typeof(DaoRepository).Assembly.GetFileInfo().FullName);
            CompilerResults results = _daoGenerator.Compile(new DirectoryInfo(writeSourceTo), assemblyNameToCreate, references.ToArray(), false);

            return(results);
        }
Exemple #2
0
        private static void Compile(DirectoryInfo[] dirs, FileInfo file)
        {
            DaoGenerator    generator = new DaoGenerator(GetNamespace());
            CompilerResults results   = generator.Compile(dirs, file.FullName);

            OutputCompilerErrors(results);
        }
        protected internal CompilerResults Compile(string assemblyNameToCreate, string writeSourceTo)
        {
            HashSet <string> references = new HashSet <string>(DaoGenerator.DefaultReferenceAssemblies.ToArray());

            references.Add(typeof(JsonIgnoreAttribute).Assembly.GetFileInfo().FullName);
            _additonalReferenceAssemblies.Each(asm =>
            {
                references.Add(asm.GetFilePath());
            });
            SchemaDefinitionCreateResult.TypeSchema.Tables.Each(type => references.Add(type.Assembly.GetFileInfo().FullName));
            references.Add(typeof(DaoRepository).Assembly.GetFileInfo().FullName);
            CompilerResults results = _daoGenerator.Compile(new DirectoryInfo(writeSourceTo), assemblyNameToCreate, references.ToArray(), false);

            return(results);
        }