Пример #1
0
 protected VisualBasic.VisualBasicCompilation CreateVisualBasicCompilation(
     string code,
     VisualBasic.VisualBasicParseOptions parseOptions             = null,
     VisualBasic.VisualBasicCompilationOptions compilationOptions = null,
     string assemblyName = null,
     IEnumerable <MetadataReference> referencedAssemblies = null)
 {
     return(CreateVisualBasicCompilation(assemblyName, code, parseOptions, compilationOptions, referencedAssemblies, referencedCompilations: null));
 }
Пример #2
0
 protected VisualBasic.VisualBasicCompilation CreateVisualBasicCompilation(
     string assemblyName,
     string code,
     VisualBasic.VisualBasicParseOptions parseOptions             = null,
     VisualBasic.VisualBasicCompilationOptions compilationOptions = null,
     IEnumerable <MetadataReference> referencedAssemblies         = null,
     IEnumerable <Compilation> referencedCompilations             = null,
     Encoding encoding     = null,
     string sourceFileName = null)
 => CreateVisualBasicCompilation(assemblyName, new[] { code }, parseOptions, compilationOptions, referencedAssemblies, referencedCompilations, encoding, new[] { sourceFileName });
Пример #3
0
        protected VisualBasic.VisualBasicCompilation CreateVisualBasicCompilation(
            string assemblyName,
            string[] files,
            VisualBasic.VisualBasicParseOptions parseOptions             = null,
            VisualBasic.VisualBasicCompilationOptions compilationOptions = null,
            IEnumerable <MetadataReference> referencedAssemblies         = null,
            IEnumerable <Compilation> referencedCompilations             = null,
            Encoding encoding        = null,
            string[] sourceFileNames = null)
        {
            Debug.Assert(sourceFileNames == null || sourceFileNames.Length == files.Length);
            if (assemblyName == null)
            {
                assemblyName = GetUniqueName();
            }

            if (parseOptions == null)
            {
                parseOptions = VisualBasic.VisualBasicParseOptions.Default;
            }

            if (compilationOptions == null)
            {
                compilationOptions = new VisualBasic.VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary);
            }

            compilationOptions = compilationOptions.WithParseOptions(parseOptions);
            var references = new List <MetadataReference>();

            if (referencedAssemblies == null)
            {
                references.Add(MscorlibRef);
                references.Add(SystemRef);
                references.Add(SystemCoreRef);
                references.Add(MsvbRef);
                references.Add(SystemXmlRef);
                references.Add(SystemXmlLinqRef);
            }
            else
            {
                references.AddRange(referencedAssemblies);
            }

            AddReferencedCompilations(referencedCompilations, references);

            var trees = new SyntaxTree[files.Length];

            for (int i = 0; i < files.Length; i++)
            {
                trees[i] = VisualBasic.VisualBasicSyntaxTree.ParseText(files[i], options: parseOptions, encoding: encoding, path: sourceFileNames?[i]);
            }


            return(VisualBasic.VisualBasicCompilation.Create(assemblyName, trees, references, compilationOptions));
        }
Пример #4
0
        protected VisualBasic.VisualBasicCompilation CreateVisualBasicCompilation(
            string assemblyName,
            string code,
            VisualBasic.VisualBasicParseOptions parseOptions             = null,
            VisualBasic.VisualBasicCompilationOptions compilationOptions = null,
            IEnumerable <MetadataReference> referencedAssemblies         = null,
            IEnumerable <Compilation> referencedCompilations             = null,
            Encoding encoding     = null,
            string sourceFileName = null)
        {
            if (assemblyName == null)
            {
                assemblyName = GetUniqueName();
            }

            if (parseOptions == null)
            {
                parseOptions = VisualBasic.VisualBasicParseOptions.Default;
            }

            if (compilationOptions == null)
            {
                compilationOptions = new VisualBasic.VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary);
            }

            compilationOptions = compilationOptions.WithParseOptions(parseOptions);
            var references = new List <MetadataReference>();

            if (referencedAssemblies == null)
            {
                references.Add(MscorlibRef);
                references.Add(SystemRef);
                references.Add(SystemCoreRef);
                references.Add(MsvbRef);
                references.Add(SystemXmlRef);
                references.Add(SystemXmlLinqRef);
            }
            else
            {
                references.AddRange(referencedAssemblies);
            }

            AddReferencedCompilations(referencedCompilations, references);

            var tree = VisualBasic.VisualBasicSyntaxTree.ParseText(code, options: parseOptions, encoding: encoding, path: sourceFileName);

            return(VisualBasic.VisualBasicCompilation.Create(assemblyName, new[] { tree }, references, compilationOptions));
        }