我所从事的业务是一家在线零售商,我目前正在从事一个项目,其中包括计算产品的客户价格。我们可能会创建一个看起来像…
public interface IPriceService
{
decimal CalculateCustomerPrice(ISupplierPriceProvider product);
}
public interface ISupplierPriceProvider
{
decimal SupplierPrice { get; }
string Currency { get; }
}
别担心,它看起来不会完全像那样,但你知道一般的想法。在我们实现此服务时,将有许多计算此价格的规则,这些规则可能会经常更改,我们可能希望在接下来的某个时间为这些规则创建某种DSL。目前,虽然我们还不太确定销售部门会要求什么样的更改,所以我正在考虑托管DLR,并拥有一个包含大量价格计算的Iron python或Iron ruby脚本文件。这样我们就可以快速更新价格计算规则,并了解业务人员需要哪种类型的DSL。这听起来像是一个明智的想法吗?是否有人有任何关于如何托管DLR和让脚本文件与CLR对象交互并返回值的链接文章/教程?