如何减少用于RPC调用的类数?

时间:2014-05-14 02:18:05

标签: c# prism

我目前正在开发一个项目,该项目使用自定义服务器协议来实现与RPC类似的API。然而,为了适应PRISM架构,支持这些功能的类的数量和样板量迅速膨胀。请注意我继承了这个代码库,我现在没有足够的时间去重写太多。

基本上问题是当存储库调用服务代理时,我们必须通过JSON将参数传递给服务器,这意味着我们需要一个RequestParameters对象来序列化。然后我们收到一个看起来并不总是相同的响应,因此大多数调用都有唯一的ResponseParameters。最后,还有一个事件结构,其中一个事件从服务器返回但是由文本字段区分,这意味着我们必须编写事件路由器,将每个事件路由到其特定部分,然后从那里进一步路由,并为每个事件创建一个唯一的事件类。

以这种方式,如果我想进行一个将结果作为事件返回的调用,我需要创建两个方法,三个类,并将事件条目添加到相应的事件路由器,并且大多数这些类都是时间消耗样板。

如何更改此结构以解决类膨胀并改善路由概念?

1 个答案:

答案 0 :(得分:1)

一些有助于弥补这一重大改革的技术:

  1. 将样板文件抽象为使用泛型的基类
  2. 代码生成(通过T4内置到VS或第三方工具中) PostSharp)
  3. 在某些范围内,将事物定义为" dynamic" 而不是为他们创建类(你的事件代码/路由器似乎 喜欢这个的好候选人)