使用aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译
aardio简介
aardio 可以非常方便地调用 .NET( 不需要任何复杂的步骤 )。//导入 .NET 支持库
import dotNet;
//导入.NET 程序集
dotNet.import("System");
//调用类的静态成员函数
var isValidHost = System.Uri.CheckHostName("www.aardio.com");
//构造 .NET 对象
var uri = System.Uri("https://www.aardio.com/test?q=aardio");
//读或写 .Net 对象的实例属性
var host = uri.Host;
//调用 .Net 对象实例的成员函数
var hash = uri.GetHashCode();
import dotNet;
dotNet.reference({
["test.mydll"] = $"\test.mydll.dll";
["test.core"] = $"\test.core.dll";
});
dotNet.import("test.mydll");
//导入 .NET 程序集
var assembly = dotNet.load("test.mydll");
//导入 .NET 名字空间
assembly.import("test.mydll");
//导入 .NET 名空间
import System;
//用 System 名字空间下面的类构造对象实例
var uri = System.Uri("https://www.aardio.com/test?q=aardio")
//读或写 .Net 对象的实例属性
var host = uri.Host ;

import dotNet;
dotNet.import("System")
import System.Windows.Forms;
var Forms = System.Windows.Forms;
var dataGridView = Forms.CreateEmbed("DataGridView",winform.custom);
//添加数据列
var dataTable = System.Data.DataTable("DT");
dataTable.Columns.Add("名称");//添加列
dataTable.Columns.Add("计数",System.Type.GetType("System.Double")); //添加指定数据类型的列
dataTable.Columns.Add("选择",System.Type.GetType("System.Boolean")); //自动显示复选框
//绑定数据源到视图 var dataView = System.Data.DataView(dataTable); dataGridView.DataSource = dataView; dataGridView.EditMode=2;
//先移除自动生成的列
dataGridView.Columns.Remove("名称");
//下面添加下拉框以替换上面移除的列
var cmbColumn = Forms.DataGridViewComboBoxColumn();
cmbColumn.Width = 120;
cmbColumn.Name = "Name";
cmbColumn.DataPropertyName = "名称";//对应上面 dataTable 里的字段名
cmbColumn.HeaderText = "名称"; //显示在列标题里的文本
//如果名称与显示值一样,那直接给 cmbColumn.DataSource 赋值一个数组就可以
//下面绑定下拉候选框的数据源,上面的 DataPropertyName 才是真正要读写的数据值。
cmbColumn.DisplayMember = "Name";//下拉框显示文本的属性名
cmbColumn.ValueMember = "Value"; //下拉框选项值的属性名
cmbColumn.DataSource = dotNet.createNameValueList(
{ "王五","张三"},
{ "WangWu","ZhangSan"}
);
//添加这个新的下拉框到数据视图
dataGridView.Columns.Add(cmbColumn);
//移动到第一列
dataGridView.Columns.Item["Name"].DisplayIndex = 0;
然后添加下面的代码响应 .NET 控件的事件:
//添加事件(event)
dataTable.ColumnChanged = function(sender,eventArgs){
var columnName = eventArgs.Column.ColumnName;
var value = eventArgs.Row.getItem(columnName);
winform.edit.print("已改变列:",columnName," 已变更值:",value);
}
//添加测试数据
var row = dataTable.NewRow();
row.ItemArray = {"WangWu",123, true}
dataTable.Rows.Add(row);
//读取数据
winform.button.oncommand = function(id,event){
for(i=1;dataTable.Rows.Count;1){
var arr = dataTable.Rows[i].ItemArray;
winform.edit.print( arr[1] ) ;
}
}
import dotNet;
//创建 C# 语言编译器
var compiler = dotNet.createCompiler("C#");
//DLL 程序集要提前引入,System.dll 默认已引入,注意这函数不支持内存 DLL
compiler.Reference("System.dll");
//设置待编译C#源码( 注释可赋值为字符串,注释标记首尾星号数目要一致 )
compiler.Source = /***
?>
/*如果 C# 代码开始于 aardio 模板标记,则启用 aardio 模板语法。
*/
namespace CSharpLibrary
{
public class Object
{
<?...点击查看剩余70%
网友评论