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

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:58:52
字體:
供稿:網(wǎng)友
 

要利用.net語言(例如:c# vb.net)開發(fā)自己的腳本語言必須實現(xiàn)2步:
1.能夠動態(tài)編譯.net 源代碼
2.動態(tài)調(diào)用.net組件

首先我們介紹下動態(tài)條用.net組件
1.新建1個工程作為組件接口dynamicinterface
創(chuàng)建新的類:
using system;

namespace dynamicinterface
{
 public interface idynamic {
  string getstring();
 }
}


2.新建1個工程作為需要動態(tài)調(diào)用的組件dynamicclass
引用dynamicinterface
創(chuàng)建新的類:
using system;

namespace dynamiccls
{
 public class dynamicclass:dynamicinterface.idynamic //實現(xiàn)接口
 {
  public dynamicclass()
  {
   
  }
  #region idynamic 成員

  public string getstring() {
   // todo:  添加 dynamicclass.getstring 實現(xiàn)
   return "hello world huhong";
  }

  #endregion
 }


3.新建1個工程來動態(tài)調(diào)用dynamicclass
using system;
using system.reflection;

using system.threading;

namespace dynamicreference
{
 
 class dynamicreference
 {
  /// <summary>
  /// 應(yīng)用程序的主入口點。
  /// </summary>
  [stathread]
  static void main(string[] args)
  {
   
   string [email protected]"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()); //利用反射機(jī)制運行
   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;
  }
 }
}

未完待續(xù)....

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宽城| 花莲市| 海丰县| 霸州市| 白水县| 政和县| 寻乌县| 通州区| 石首市| 牟定县| 财经| 辽宁省| 蒙山县| 腾冲县| 丽江市| 衡水市| 鄄城县| 天等县| 合江县| 方山县| 班玛县| 濮阳县| 嘉禾县| 闻喜县| 扶余县| 和平县| 哈密市| 黔江区| 自治县| 巴楚县| 渭南市| 天全县| 北海市| 伊春市| 嫩江县| 乌拉特中旗| 太康县| 高阳县| 永安市| 辉县市| 民和|