Farseer

导航

D365 FO Chain of Command

D365 FO Update9以后增加了Chain of Command(CoC),用来扩展系统类的方法,具体的使用方法参见下文。
https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/extensibility/method-wrapping-coc
在CoC出现之前,系统采用在扩展类上增加静态方法,并通过属性指定一堆值才能实现,如下所示:

1 [PreHandlerFor(tableStr(InventTable), tableMethodStr(InventTable, initValue))]
2     public static void InventTable_Pre_initValue(XppPrePostArgs args)
3     {
4         InventTable inventTable = args.getThis();
5         inventTable.ItemId = "Hello";
6     }

现在用CoC实现如下所示:

1 public void initValue()
2     {
3         next initValue();
4         this.ItemId = "Hello";
5     }

简洁多了,庆幸接触D365晚,不用写那么繁琐的方法来修改系统类的方法。
感觉AX进入D365时代以后,X++本身的特性的增加进入了快车道,迭代也很快,不像从3.0到2012,语言本身的特性变化不大。
虽然迭代以后,看之前的写法有点傻,不过这正说明进步,正如看C#在Lamada表达式之前的一些写法也显得笨拙一样,拥抱变化吧

posted on 2020-04-29 15:18  佛西亚  阅读(266)  评论(0编辑  收藏  举报