DLL自定义业务逻辑

Mus*_*gdy 1 .net c# configuration extensibility business-logic

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

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

我正在使用c#3.5,有没有办法这样做?

Pat*_*her 5

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

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

有可能可以分离出不同的功能吗?您可以:

  • 将配置放在数据库或配置文件中(可能是XML).因此,很多应用程序应该基于表或配置文件工作.
  • 您可以为代码需要不同的地方实现插件提供程序.
  • kindof oldschool,但您可以使用编译代码的CodeDom部分实现即插即用功能(忽略有关绘制代码的部分).然后,您可以将功能放在易于编辑的文本文件中.
  • 看看Managed Extensibility Framework,它是为这类东西而构建的.