使用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%
网友评论