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 请求方式.应用系统可发起对属性的读取和设置请求. 在上一篇文章& ...
随机推荐
- Windows批量修改文件夹及子文件夹下文件的扩展名
实例:将 D:/backup 目录下所有后缀名为 “.zip” 的文件替换为 “.exe” 后缀 bat批处理: @echo off rem 不显示执行过程 D: rem 切换至指定盘符 cd D:/ ...
- ZT 安卓手机的安全性 prepare for Q
如何增强安卓手机的安全性?安卓的安全性太低了!!! 众所周知,安卓手机是非常容易破解的,刷过机的人都知道,不管你之前在手机怎么设置密码,只要进入recovery清空使用记录,手机就会恢复出厂设置,到时 ...
- html5小结
本文提到的HTML5仅仅指于2014年完成新一代的HTML标准. html5主要在以下方面做了改变. 1.新增标签 新增语义化标签. <header> 定义 section 或 page ...
- 【问题记录】centos 开机启动命令未执行
查看日志 /var/log/boot.log 看具体原因,有可能脚本执行有问题, 当你在系统已经启动的时候,脚本执行没问题不代表开机启动能运行
- Kubernetes-dns 域名解析问题
问题描述:nginx不能解析域名,但是使用nslookup却可以解析域名 ./sbin/nginx -t nginx: [emerg] host not found in upstream " ...
- 初探tp
现在对前端的要求越来越高了 基本上身为一个前端人员需要会一种后台语言,于是选择了当下流行的php.因为是自学对我这个不怎么懂代码的人来说还是有点难度的. 1.先看看thinkphp的目录结构 1 ├ ...
- 超简单,centos7安装docker
1.在centos7上直接yum安装docker [root@localhost ~]# yum install docker 2.启动docker [root@localhost ~]#servic ...
- jenkins 基本插件
- XML External Entity attack/XXE攻击
XML External Entity attack/XXE攻击 1.相关背景介绍 可扩展标记语言(eXtensible Markup Language,XML)是一种标记语言,被设计用来传输和存 ...
- 【转】android SystemUI 流程分析
android4 SystemUI 流程分析 什么是SystemUI? 对于Phone来说SystemUI指的是:StatusBar(状态栏).NavigationBar(导航栏).而对于Tablet ...