[C#][.NET Core] 設計使用 Jint 反射 dll 執行外掛程式

2022-02-22

前幾篇文章說到了 模擬做到 XMLHttpRequest (XHR) 的效果 還有 試著在 Jint 引入其他的 .js 檔案,模擬類似 require 的效果 

因為 Jint 跟 C# 的程式碼混和執行,這我們之前文章 試著用 C# 透過 Jint 執行 Javascript ,混和執行 ,已經說過了

但是畢竟你能提供的有限,有沒有可能讓有能力的客戶自己撰寫自己要的呢?


後來想一下這需求,其實我只要提供一個 interface 給有能力的客戶,然後我透過反射的方式,也就是客戶只要提供給我 Class Name 

還有他的 dll 也就是我就透過反射就可以呼叫他寫的程式。


1. 制定 一個簡單的  interface ,這裡面我沒啥設計就是一個 CallResult 的 method 可以去呼叫結果,傳入的部分就是 string 


2.開一個專案 DPlugin1,做一個名稱為 MD5 的 class  繼承 IDPlugin,這邊我撰寫的是一個 將字串 加入 特殊的 salt 然後轉 MD5


3. 編譯後 拿到一個 DPlugin1.dll  之後 複製到主專案中根目錄下 再來我們看看如何執行 DPlugin1.dll


其實觀念懂了不難,但是可以做到很多驚人的效果,方便佈局規劃妳的系統

完整程式碼可以到這下載:

https://github.com/donma/JintPluginSample


當麻許的超技八 2014 | Donma Hsu Design.