Example #1
0
        /// <summary>
        /// Reads and parses the file and returns all of the associated library
        /// references
        /// </summary>
        /// <include file='code-documentation\inputfilereader.xml' path='docs/inputfilereader/member[@name="Read"]/*' />
        public List <DocumentedAssembly> Read(string fileName, string buildConfiguration)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName");
            }

            List <DocumentedAssembly> files = null;
            FileReader reader = null;

            switch (Path.GetExtension(fileName).ToLower())
            {
            case ".sln":
                reader = new SolutionFileReader(fileName, _filesystem);
                break;

            case ".csproj":
            case ".vbproj":
            case ".vcproj":
                reader = ProjectFileReader.Create(fileName, _filesystem);
                break;

            case ".dll":
            case ".exe":
                reader = new LibraryFileReader(fileName);
                break;

            default:
                throw new ArgumentException("Provided filename is for a non valid file type", fileName);
            }

            reader.BuildConfiguration = string.IsNullOrEmpty(buildConfiguration) ? "Debug" : buildConfiguration;
            files = reader.Read();

            return(files);
        }