【发布时间】:2013-07-20 12:23:57
【问题描述】:
我有两个项目和一个可移植库。这两个项目都引用了这个库。该库有什么方法可以为两个项目中的每一个提供两种不同的方法实现?
例如,项目是服务器和客户端,并且库有一个类,其中有一个名为 SendItem 的方法。
服务器对 SendItem 的实现:
Send(ID);
Send(Name);
Send(Price);
客户端对 SendItem 的实现:
Send(ID); //Server will retrieve rest of information from database
我宁愿不使用额外的参数来指示哪个项目正在调用该方法,因为该方法被许多类调用,并且事情会变得丑陋和复杂。有什么方法可以使用编译条件来完成吗? (可以为每个引用它的项目多次编译库吗?)。
如果使用编译条件无法实现这一点,是否有任何干净的方法可以做到这一点而不会搞砸其他事情?
【问题讨论】:
-
如果实现因调用者不同而不同,则应将其拆分为两个函数
-
这是唯一的方法吗?
-
它不仅是方法,而且是正确的方法,为什么你会在同一个函数中有 2 个不同的实现,也许你需要 2 个类,一个用于客户端,一个用于服务器
-
我有许多需要在客户端和服务器之间发送的对象(订单、菜单、项目等)。我不认为仅仅为了两种方法就必须实现这些类两次(实际上是 3 次,因为我也有一个管理员项目)是一个好方法。如果没有其他方法,我会将其拆分为两个函数,尽管结果会变得一团糟(我需要做很多修改)。
标签: c# portability portable-class-library