示例#1
0
        public void SearchInputs()
        {
            foreach (var path in AssemblyDirs)
            {
                if (!Directory.Exists(path))
                {
                    continue;
                }

                var files = Directory.EnumerateFiles(path, "*.dll");

                foreach (var file in files)
                {
                    var matches = false;
                    foreach (var assembly in Assemblies)
                    {
                        matches |= Regex.IsMatch(Path.GetFileName(file), assembly);
                    }

                    if (!matches)
                    {
                        continue;
                    }

                    var input = new ProjectInput
                    {
                        BasePath = path,
                        FullPath = file,
                    };

                    AssemblyInputs.Add(input);
                }
            }
        }
示例#2
0
        ParserResult <T> ParseInput <T>(ProjectInput input, ParserHandler <T> handler)
        {
            var result = new ParserResult <T>
            {
                Input = input
            };

            if (!File.Exists(input.FullPath))
            {
                result.Kind = ParserResultKind.FileNotFound;
                return(result);
            }

            handler(input, result);
            return(result);
        }
示例#3
0
        public void BuildInputs()
        {
            foreach (var assembly in Assemblies)
            {
                var file = Path.GetFullPath(assembly);

                if (!File.Exists(file))
                {
                    continue;
                }

                var input = new ProjectInput
                {
                    BasePath = Path.GetDirectoryName(file),
                    FullPath = file
                };

                AssemblyInputs.Add(input);
            }
        }
示例#4
0
 public void ParseAssembly(ProjectInput input, ParserResult <IKVM.Reflection.Assembly> result)
 {
     try
     {
         try
         {
             var res = Universe.LoadFile(input.FullPath);
             result.Output = res;
         }
         catch (Exception ex)
         {
             result.Message = ex.ToString();
             result.Kind    = ParserResultKind.Error;
         }
     }
     finally
     {
         OnAssemblyParsed(result);
     }
 }