Example #1
0
        /// <summary>
        /// Sets up exported file dummy
        /// </summary>
        /// <param name="fileName">File name</param>
        /// <returns>Exported file dummy</returns>
        public ExportedFile SetupExportedFile(string fileName = null)
        {
            if (fileName == _context.TargetFile)
            {
                fileName = null;
            }
            IEnumerable <Type> types = null;

            if (!string.IsNullOrEmpty(fileName))
            {
                if (!_typesToFilesMap.ContainsKey(fileName))
                {
                    var allFiles = string.Join(", ", _typesToFilesMap.Keys);
                    throw new Exception("Current configuration does not contain file " + fileName + ", only " + allFiles);
                }

                types = _typesToFilesMap[fileName];
            }
            ExportedFile ef = new ExportedFile
            {
                References           = GlobalReferences.Duplicate(),
                FileName             = fileName,
                AllTypesIsSingleFile = !_context.Hierarchical,
                TypesToExport        = _context.Hierarchical ? new HashSet <Type>(types) : _allTypesHash
            };

            ef.TypeResolver = new TypeResolver(_context, ef, ReferenceInspector);
            ef.AddReferencesFromTypes(_context.Global.UseModules);
            return(ef);
        }