aardio 文档

aardio 范例: 调用 .NET 之控制台操作

//aardio 调用 .NET 之控制台操作
import dotNet; 
var compiler = dotNet.createCompiler("C#");

compiler.Source = /*** 
using System; 
namespace CSharpLibrary  
{  
    public class Object  
    {     
        public static void Test(){    
            System.Console.WriteLine("这是 C# 在控制台输出的内容"); 
        }
    }   
} 
***/ 
compiler.import("CSharpLibrary"); 

import console
console.log("只要调用 console 库打开控制台,就会自动绑定 .NET 控制台。")

/*
console 库函数会自动调用 console.open() 打开控制台。
如果控制台 console 库被打开,aardio 就会自动绑定 .NET 控制台。
*/
CSharpLibrary.Object.Test();

/*
console 打开控制台以后会向同一线程发送 "afterConsoleOpen" 事件。
订阅此事件就可以绑定控制台,以下是标准库 dotNet.appDomain 中的相关代码:

var reopenConsole = function(){

    for(k,appDomain in __appDomainCache){
        // ..io.utf8 用于判断R控制台是否  UTF-8 编码。
        // aardio 在  Win10 1709 以上会将控制台默认设为 UTF-8 编码。
        appDomain.utility.ReopenConsole(!!..io.utf8); 
    }
}
if(::Kernel32.GetConsoleWindow()) reopenConsole();
..subscribe("afterConsoleOpen",reopenConsole);

当然,如果在导入 dotNet 库以前打开控制台,.Net 默认就会正确绑定。 
这些代码主要是修正在导入 dotNet 库以后再打开控制台导致 .NET 不能在控制台输出输入的问题。
*/

console.pause();

Markdown 格式