c#模板化生成接口

最近打算做這樣一個事情,一個桌面系統項目既可以一體化部署,作爲一個軟件一個進程部署,也可以把業務服務化部署。

那一般意味着我們要完全寫2套東西,一套是直接UI調用業務,一套是Ui調用RPC。這樣比較多操作。

現在打算將業務接口化,UI直接調用工廠返回接口,底層用autofac控制。

另外一套直接模板化生成,將調用的接口模板化生成。

根據配置,分別調用業務了類或者模板生成的類。

這裏簡單說說模板生成類。

將所有接口調用打包,封裝成一個結構,裏面包含調用的方法名稱,接口名稱,以及KV形式的參數。

這樣打包的結構再次傳入客戶端請求類中,請求類根據實際需求處理這個結構體,這樣就不需要準備2套。而且開放迅速。

你要做的就是修改這個客戶端請求類。

模板生成採用emit生成。當然也可以動態編譯。開始採用codedom,後面才知道微軟放棄了。

這裏就不貼代碼了,把代碼放在Git上面了。每個接口方法內部調用項目RequestProxy中SrvImplFactory類的方法。

這只是個演示,模板支持方法,屬性,事件。SrvImplFactory只是例子,需要自己修改完善。

地址:https://github.com/jinyuttt/IFProvider.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章