xaf.domain object new 在属性上的用法
有如下业务对象定义:
using System;
using System.Linq;
using System.Text;
using DevExpress.Xpo;
using DevExpress.ExpressApp;
using System.ComponentModel;
using DevExpress.ExpressApp.DC;
using DevExpress.Data.Filtering;
using DevExpress.Persistent.Base;
using System.Collections.Generic;
using DevExpress.ExpressApp.Model;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Persistent.Validation; namespace TestXPO.Module.BusinessObjects
{
//往来单位:供应商,客户都是此类的派生类
[XafDefaultProperty("Name")]
[DefaultClassOptions]
public abstract class CompanyUnit : BaseObject
{
public CompanyUnit(Session s) : base(s)
{ }
public string Name
{
get { return GetPropertyValue<string>(nameof(Name)); }
set { SetPropertyValue(nameof(Name), value); }
}
} [DefaultClassOptions]
[XafDefaultProperty(nameof(Address))]
public class Customer : CompanyUnit
{
public Customer(Session s) : base(s)
{ }
public string Address
{
get { return GetPropertyValue<string>(nameof(Address)); }
set { SetPropertyValue(nameof(Address), value); }
}
} [DefaultClassOptions]
public class Provider : CompanyUnit
{
public Provider(Session s) : base(s)
{ } } public class Dept : CompanyUnit
{
public Dept(Session s) : base(s)
{ }
}
//存在某种单据基类:
//使用了CompanyUnit做为属性的类型
//在派生类中new TargetUnit重新定义此属性的类型,则可以成功
//可以达到使用真实类型过滤的作用.
//但如果使用Guid类型声明,并且派生类中用复杂类型,则不能成功
[DefaultClassOptions]
public class FormBase : BaseObject
{
public FormBase(Session session)
: base(session)
{
} public CompanyUnit TargetUnit
{
get { return GetPropertyValue<CompanyUnit>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
} [DefaultClassOptions]
public class PMSOrder : FormBase
{
public PMSOrder(Session s) : base(s)
{ }
public new Provider TargetUnit
{
get { return GetPropertyValue<Provider>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
} [DefaultClassOptions]
public class SMSOrder : FormBase
{
public SMSOrder(Session s) : base(s)
{ }
public new Customer TargetUnit
{
get { return GetPropertyValue<Customer>(nameof(TargetUnit)); }
set { SetPropertyValue(nameof(TargetUnit), value); }
}
}
}
xaf.domain object new 在属性上的用法的更多相关文章
- paip.提升效率---request自动绑定domain object
paip.提升效率---request自动绑定domain object #.keyword,subtitle关键字,子标题 ------------------------- 复制request属性 ...
- TextBox 绑定到DataTable某一列属性上
将TextBox绑定到DataTable某一列属性上 DataTable dt = GetDataTable() textBox1.DataBindings.Add("Text", ...
- JavaScript之Object对象常用属性与方法手册
MDN Object参考地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Obje ...
- 为什么Object.prototype在Function的原型链上与Function.prototype在Object的原型链上都为true
关于javascript的原型链有一个问题我一直很疑惑:为什么 Function instanceof Object 与 Object instanceof Function都为true呢? Func ...
- 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 SpringBoot是如何实现自动配置的?--SpringBoot源码(四) 温故而知新,我们来简单回顾一下上 ...
- vue2.x版本中Object.defineProperty对象属性监听和关联
前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...
- 读匿名object对象的属性值
读匿名object对象的属性值 1.定义读object对象值的功能方法 public static class StaticClass { public static string ValueByKe ...
- JS构造函数内的方法与构造函数prototype属性上方法的对比
本文的目的是让大家理解什么情况下把函数的方法写在JavaScript的构造函数上,什么时候把方法写在函数的 prototype 属性上;以及这样做的好处. 为了阅读方便,我们约定一下:把方法写在构造函 ...
- 【阿里云IoT+YF3300】3. Alink物模型之属性上传和下发
[名词解释]属性:设备的功能模型之一,一般用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度等.属性支持 GET 和 SET 请求方式.应用系统可发起对属性的读取和设置请求. 在上一篇文章& ...
随机推荐
- C++ 读书笔记1
c++ 笔记1 body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding ...
- 绕过CDN查找网站真实IP方法收集
方法1很简单,使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有: http://ping.chinaz.com/ http://pi ...
- [2018HN省队集训D6T2] girls
[2018HN省队集训D6T2] girls 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图, 求选三个不同结点并使它们两两不邻接的所有方案的权值和 \(\bmod 2^{64}\) 的值 ...
- MyEclipse10.6 myeclipse2013下添加jadClipse反编译插件 .
jad是一个使用比较广泛的Java反编译软件,jadClipse是jad在eclipse下的插件,下面像大家介绍下如何将jadclipse加入到MyEclipse10.X,9.X,8.X,6.X等各版 ...
- Hive学习之路 (十七)Hive分析窗口函数(五) GROUPING SETS、GROUPING__ID、CUBE和ROLLUP
概述 GROUPING SETS,GROUPING__ID,CUBE,ROLLUP 这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计,比如,分小时.天.月的UV数. ...
- java crm 进销存 springmvc SSM 项目 源码 系统
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- iOS UITextField的代理<UITextFieldDelegate>的几点笔记
今天做项目的时候,有个需求,点击按钮,就在特定的编辑框输入按钮中的文字,一开始我还以C++的思想来写,先获取光标的位置,然后在判断是否在那个编辑框,进行输入.后来我旁边的同事看到了直接教我用代理方法, ...
- 图片 和 base64 互转
图片转base64 NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]]; UIImage *img = ...
- vue实现首页导航切换不同路由的方式
vue实现切换首页路由导航 ,根据切换的不同导航跳转不同的路由,以及当前选中的导航添加选中样式. html代码: <nav> <!-- 导航栏 --> <div cla ...
- mac 下安装php7.1 memcache扩展
1.下载memcache源代码文件 https://github.com/websupport-sk/pecl-memcache/archive/php7.zip 文件夹名为:pecl-memcach ...