c#模板化生成接口

最近打算做这样一个事情,一个桌面系统项目既可以一体化部署,作为一个软件一个进程部署,也可以把业务服务化部署。

那一般意味着我们要完全写2套东西,一套是直接UI调用业务,一套是Ui调用RPC。这样比较多操作。

现在打算将业务接口化,UI直接调用工厂返回接口,底层用autofac控制。

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

根据配置,分别调用业务了类或者模板生成的类。

这里简单说说模板生成类。

将所有接口调用打包,封装成一个结构,里面包含调用的方法名称,接口名称,以及KV形式的参数。

这样打包的结构再次传入客户端请求类中,请求类根据实际需求处理这个结构体,这样就不需要准备2套。而且开放迅速。

你要做的就是修改这个客户端请求类。

模板生成采用emit生成。当然也可以动态编译。开始采用codedom,后面才知道微软放弃了。

这里就不贴代码了,把代码放在Git上面了。每个接口方法内部调用项目RequestProxy中SrvImplFactory类的方法。

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

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

posted @ 2019-07-22 19:49  IT苦行僧  阅读(570)  评论(0编辑  收藏  举报