在准备写这个系列文章之前,就准备是概念+示例的组合,这样大家对概念的理解会更深刻。之前的规划是在讲到一个比较重要的概念或多个概念时给出一个示例,示例也是针对大家都熟悉的场景(如:学生),虽然也能描述出概念中的知识点,但事后考虑到实用性不强,不能直接应用到实际项目中,所以改变了一下思路,以后的示例会更注重实用,示例中的项目可以间接或直接的应用到实际项目中。示例概述
示例代码放到了码云(https://gitee.com/easyxaf/easy-xaf.-data-dictionaries),以后示例的项目都是以EasyXaf开头。
XPO的一个知识点,在XPO中是不能直接关联(Association)一个外部程序集中的BO(BusinessObject),XAF中自身的BO都是放在同一个程序集中的(DevExpress.Persistent.BaseImpl.Xpo),所以不存在这样的限制。如果我们的BO都放到同一个程序集中,这样项目的模块化会有一定限制。XPO给出了两个解决方案,一种是在AssociationAttribute中传入程序集的名称及类型的全名(都是字符串),还有自定义XPO的元数据(在XAF中是在Module的CustomizeTypesInfo方法中进行定义的),我们的示例项目采用了后者,它更加的灵活。我们整个示例项目的核心代码都是在CustomizeTypesInfo中,通过TypesInfo对符合条件的BO进行自定义,在运行时添加成员及Attribute。代码如下
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |