我有一个项目,其中一些业务逻辑被分离到一个 DLL 项目中,该 DLL 包含该软件针对特定客户的业务逻辑。
现在我遇到了一个问题,因为另一个具有不同规则的客户端想要实现该软件,我需要应用程序根据使用该软件的客户端加载适当的 dll,考虑到这个 dll 包含相同的函数名称但不同的主体.
我使用的是 C# 3.5,有办法吗??
最佳答案
是的,你当然可以。您可以对项目进行分支,更改类的实现,保持所有类和类成员的签名相同,重新编译,您的业务逻辑将按照您的意愿运行。
但是,这不好。您将有两个不同的分支,具有不同的实现,为此您必须永远保持签名同步。然后你会有另一个客户,另一个。这将是一场永无止境的噩梦。
是否可以将不同的功能分开?您可以:
- 将配置放入数据库或配置文件(可能是 XML)。出于这个原因,您的许多应用程序都应该基于表或配置文件工作。
- 你可以实现plug-ins和 providers对于代码需要不同的地方。
- 有点老派,但您可以使用 CodeDom 的部分实现即插即用功能编译代码(忽略关于绘制代码的部分)。然后,您可以将功能放入易于编辑的文本文件中。
- 看看Managed Extensibility Framework ,专为此类事物而构建。
关于c# - dll自定义业务逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841618/