所以这里是问题:
我的应用程序中有一些逻辑会因客户端而异。什么是最好的方法来构建它,以便可以在不更改任何代码的情况下对其进行配置。我已经在配置中添加了一个 appsetting,如下所示:
<add key="MyCalculationType" value="MyApp.Client1.Calculation,MyApp.Client1" />
在我的核心业务逻辑中:
ICalculation abcCalculation = CalculationFactory.GetManager(); // Uses appsetting to get type
abcCalculation.Calculate(this);
我添加了一个名为 MyApp.Client1 的新项目,我希望它包含计算的客户端特定实现。
namespace MyApp.Client1
{
public class Calculation : ICalculation
{
public void Calculate(Order o)
{
// Calculate properties of order
}
}
}
我还没有完成,所以我无法提供任何输出。在这个阶段,我想知道,在我走得更远之前,是否有更好的方法来实现我想要的。我不确定的一件事是放置 ICalculation 接口的位置。我认为我拥有它的方式可能会产生循环引用错误。
非常感谢
编辑
正如我所怀疑的,ICalculation 接口阻止了我构建。虽然没有循环参考错误;出现“无法解析符号”错误。