Skip to content

API Host MemorySourceResolver

Liu.Yandong.Hanks edited this page Aug 21, 2026 · 3 revisions

MemorySourceResolver

In-memory IScriptSourceResolver implementation.

Namespace: AuroraScript.Source. Kind: class.

Back to .NET Host API Reference

Overview

MemorySourceResolver serves scripts from a virtual path table instead of disk, which suits generated code, unsaved editor buffers, and tests. Create one directly or through ScriptSources.Memory(root).

Note

  • ResolveAsync only returns sources that fall under Root and exist in the memory table.
  • Place memory before file system in a CompositeScriptSourceResolver to override disk sources whose resolved target falls under the memory root.
  • A parent memory root can override a child file-system dependency when the resolved target is under the memory root.

Quick Reference

A minimal use of MemorySourceResolver.

var resolver = new MemorySourceResolver("mem://app/")
    .Add("main.as", "@module(MAIN); export func run() { return 42; }");

Console.WriteLine(resolver.Root); // mem://app/

Constructors

MemorySourceResolver

MemorySourceResolver(string root = "mem://app/")

Creates a resolver rooted at a virtual source namespace.

Parameters

Name Type Required Description
root string No Virtual root; defaults to mem://app/.

Returns

A new MemorySourceResolver instance.

var resolver = new MemorySourceResolver("mem://app/");

Properties

Root

string Root

Normalized virtual root of this resolver.

Parameters

None.

Returns

Returns string.

Console.WriteLine(resolver.Root); // mem://app/

Methods

Add

MemorySourceResolver Add(string path, string source)

Adds or replaces a virtual memory source.

Parameters

Name Type Required Description
path string Yes Absolute path or a path relative to Root.
source string Yes Script text stored for the path.

Returns

Returns the same MemorySourceResolver, so calls can be chained.

Behavior

path may be absolute or relative to Root. It is normalized to a full source path with / separators before storage.

var resolver = new MemorySourceResolver("mem://app/")
    .Add("main.as", "@module(MAIN); export func run() { return 42; }")
    .Add("lib/util.as", "@module(UTIL); export func id(value) { return value; }");

Clone this wiki locally