国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

利用.NET語言開發自己的腳本語言(一)

2019-11-17 05:25:05
字體:
來源:轉載
供稿:網友
要利用.NET語言(例如:c# vb.net)開發自己的腳本語言必須實現2步:
1.能夠動態編譯.NET 源代碼
2.動態調用.NET組件首先我們介紹下動態條用.NET組件
1.新建1個工程作為組件接口DynamicInterface
創建新的類:
using System;namespace DynamicInterface
{
 public interface IDynamic {
  string getString();
 }
}
2.新建1個工程作為需要動態調用的組件DynamicClass
引用DynamicInterface
創建新的類:
using System;namespace DynamicCls
{
 public class DynamicClass:DynamicInterface.IDynamic //實現接口
 {
  public DynamicClass()
  {
   
  }
  #region IDynamic 成員  public string getString() {
   // TODO:  添加 DynamicClass.getString 實現
   return "Hello World Huhong";
  }  #endregion
 }
3.新建1個工程來動態調用DynamicClass
using System;
using System.Reflection;using System.Threading;namespace dynamicreference
{
 
 class DynamicReference
 {
  /// <summary>
  /// 應用程序的主入口點。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   
   string dllfilename=@"C:/DynamicClass.dll";
   Thread.GetDomain().AssemblyLoad+=new AssemblyLoadEventHandler(DynamicReference_AssemblyLoad);
   Thread.GetDomain().AssemblyResolve+=new ResolveEventHandler(DynamicReference_AssemblyResolve);
   Assembly asm=System.Reflection.Assembly.LoadFile(dllfilename);
   Type type=asm.GetType("DynamicCls.DynamicClass",true);
   Object oh=Activator.CreateInstance(type);
   MethodInfo mi = type.GetMethod("getString");
   Console.WriteLine(mi.Invoke(oh,null).ToString()); //利用反射機制運行
   DynamicInterface.IDynamic id=(DynamicInterface.IDynamic)oh; //利用接口運行
   Console.WriteLine(id.getString());
  }  PRivate static void DynamicReference_AssemblyLoad(object sender, AssemblyLoadEventArgs args) {
   Console.WriteLine("加載1個組件:"+args.LoadedAssembly.FullName );
  }  private static Assembly DynamicReference_AssemblyResolve(object sender, ResolveEventArgs args) {
   Console.WriteLine("組件解析失敗!");
   return null;
  }
 }
}未完待續....

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高碑店市| 福州市| 岑溪市| 哈密市| 开化县| 临沭县| 濮阳市| 泉州市| 平利县| 三门县| 丽江市| 东丰县| 沁阳市| 四会市| 中卫市| 襄汾县| 龙江县| 石台县| 樟树市| 常熟市| 淮安市| 扎鲁特旗| 佛坪县| 英吉沙县| 秦安县| 长葛市| 芒康县| 曲麻莱县| 双柏县| 霸州市| 翁源县| 兴海县| 五华县| 曲靖市| 桐庐县| 锡林浩特市| 南陵县| 黑河市| 渭源县| 郧西县| 乌兰察布市|