c# - dll自定义业务逻辑

标签 c# .net configuration business-logic extensibility

我有一个项目,其中一些业务逻辑被分离到一个 DLL 项目中,该 DLL 包含该软件针对特定客户的业务逻辑。

现在我遇到了一个问题,因为另一个具有不同规则的客户端想要实现该软件,我需要应用程序根据使用该软件的客户端加载适当的 dll,考虑到这个 dll 包含相同的函数名称但不同的主体.

我使用的是 C# 3.5,有办法吗??

最佳答案

是的,你当然可以。您可以对项目进行分支,更改类的实现,保持所有类和类成员的签名相同,重新编译,您的业务逻辑将按照您的意愿运行。

但是,这不好。您将有两个不同的分支,具有不同的实现,为此您必须永远保持签名同步。然后你会有另一个客户,另一个。这将是一场永无止境的噩梦。

是否可以将不同的功能分开?您可以:

  • 将配置放入数据库或配置文件(可能是 XML)。出于这个原因,您的许多应用程序都应该基于表或配置文件工作。
  • 你可以实现plug-insproviders对于代码需要不同的地方。
  • 有点老派,但您可以使用 CodeDom 的部分实现即插即用功能编译代码(忽略关于绘制代码的部分)。然后,您可以将功能放入易于编辑的文本文件中。
  • 看看Managed Extensibility Framework ,专为此类事物而构建。

关于c# - dll自定义业务逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841618/

相关文章:

configuration - 使用 Varnish 配置多个站点

c# - 通过javascript在asp.net文本框控件中设置css类

c# - Linq桥性能

c# - "App.Current.myProperty"不起作用,但 "((app)Application.Current).myProperty"起作用

php - 在 PHP Web 应用程序中保存配置变量的最佳方法是什么?

c# - ASP.net Core 2.0 中的 appsettings.json 预览配置 GetSection null

c# - NLog 找不到或加载配置文件

c# - 设置 DatagridView 行以关注表单加载

c# - EF 在更新中缺少 where 子句

c# - 考虑到有效数字的数量,如何找到浮点值的最小有效步长?