/// <summary> /// Called by Unity. /// </summary> public void Start() { // Create the domain domain = ScriptDomain.CreateDomain("MazeCrawlerCode", true); // Support netstandard try { IMetadataReferenceProvider reference = AssemblyReference.FromNameOrFile("netstandard"); if (reference.TryResolveReference() == true) { domain.RoslynCompilerService.ReferenceAssemblies.Add(reference); } } catch { } // Add assembly reference to Assembly-CSharp domain.RoslynCompilerService.ReferenceAssemblies.Add(AssemblyReference.FromAssembly(typeof(MazeCrawlerExample).Assembly)); domain.RoslynCompilerService.ReferenceAssemblies.Add(AssemblyReference.FromAssembly(typeof(UnityEngine.Object).Assembly)); domain.RoslynCompilerService.ReferenceAssemblies.Add(AssemblyReference.FromAssembly(typeof(Stack <>).Assembly)); domain.RoslynCompilerService.ReferenceAssemblies.Add(AssemblyReference.FromAssembly(typeof(HashSet <>).Assembly)); if (showCompletedCodeOnStartup == true) { // Load the solution code runCrawlerInput.text = mazeCodeSolution.text; } else { // Load the template code runCrawlerInput.text = mazeCodeTemplate.text; } }
public AssemblyReferenceResolver(IProcessExecutor processExecutor, IMetadataReferenceProvider metadataReference) { _processExecutor = processExecutor; _metadataReference = metadataReference; _logger = ApplicationLogging.LoggerFactory.CreateLogger <AssemblyReferenceResolver>(); }
public CSharpToAssemblyCompiler(IMetadataReferenceProvider defaultMetadataReferences, ILogger <CSharpToAssemblyCompiler> logger) { _defaultMetadataReferences = defaultMetadataReferences; _logger = logger; }