public void AccessRightsBugReport()
const string scriptContent =
Console.WriteLine(publicPublicResource.Test);
Console.WriteLine(publicPublicResource.ToString());
publicPublicResource.Write();
Console.WriteLine(publicInternalResource.Test);
Console.WriteLine(publicInternalResource.ToString());
try { publicInternalResource.Write(); } catch (e) { Console.WriteLine(String(e)); }
Console.WriteLine(internalPublicResource.Test);
Console.WriteLine(internalPublicResource.ToString());
try { internalPublicResource.Write(); } catch (e) { Console.WriteLine(String(e)); }
using (var engine = new V8ScriptEngine())
engine.AddHostType("Console", typeof(Console));
engine.AddHostObject("publicPublicResource", new PublicPublicResource());
engine.AddHostObject("publicInternalResource", new PublicInternalResource());
engine.AddHostObject("internalPublicResource", new InternalPublicResource());
engine.Execute(scriptContent);
public class PublicPublicResource
public PublicPublicResource()
public string Test { get; }
Console.WriteLine($"Write: {Test}");
public override string ToString()
return $"ToString: {Test}";
public class PublicInternalResource
public PublicInternalResource()
internal string Test { get; }
Console.WriteLine($"Write: {Test}");
public override string ToString()
return $"ToString: {Test}";
internal class InternalPublicResource
public InternalPublicResource()
public string Test { get; }
Console.WriteLine($"Write: {Test}");
public override string ToString()
return $"ToString: {Test}";