EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

访问业务对象元数据

本主题说明如何在您的应用程序中使用类型信息子系统

可以通过XafTypesInfo类的静态Instance属性访问业务类元数据。此属性返回一个ITypesInfo对象,该对象表示XAF应用程序中使用的所有业务类的元数据。要获取特定实体上的元数据,请执行以下步骤:

  1. 访问XafTypesInfo.Instance属性以获取ITypesInfo对象。

    XafTypesInfo.Instance

  2. 要获取业务类的元数据,请使用ITypesInfo.FindTypeInfo方法。

    XafTypesInfo.Instance.FindTypeInfo(ObjectType)

    此方法返回一个ITypeInfo对象。

  3. 要获取业务类成员的元数据,请使用ITypeInfo对象的ITypeInfo.FindMember方法。

    XafTypesInfo.Instance.FindTypeInfo(ObjectType).FindMember(PropertyName)

    此方法返回一个IMemberInfo对象。

  4. 若要获取特定信息,请使用ITypeInfoIMemberInfo对象的属性。所述的ITypeInfo对象提供信息有关的类型,和IMemberInfo对象提供有关成员信息。

    XafTypesInfo.Instance.FindTypeInfo(ObjectType).IsAbstract

    XafTypesInfo.Instance.FindTypeInfo(ObjectType).FindMember(PropertyName).IsList

类型info接口声明了许多提供元数据的属性和方法。要了解类型信息子系统提供的元数据,请参考每个接口的成员列表。

除了XafTypesInfo类之外,许多XAF类还提供与其关联的元数据。例如,属性集合源具有PropertyCollectionSource.MemberInfo属性,该属性在由集合源表示的属性上提供元数据。另一个示例是一个View,它公开了ObjectView.ObjectTypeInfo属性,并提供了所表示对象类型的元数据。

以下是有关如何利用类型信息子系统提供的元数据的示例。在代码段中,View Controller检查业务类是否应用了自定义MyAttribute属性。如果应用了该属性,则在激活Controller时将执行自定义代码。

提示

DevExpress代码示例数据库(http://www.devexpress.com/example=E1649)中提供了完整的示例项目。

//...
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
public class MyCustomAttribute : Attribute { }

[MyCustomAttribute]
public class DemoContact : BaseObject {
//...
}

//...
public partial class MyViewController : ViewController {
    //...
    private void MyViewController_Activated(object sender, EventArgs e) {
        if (View.ObjectTypeInfo.FindAttribute<MyCustomAttribute>() != null) {
            // Place your code here.
        }
    }
}
注意

在此代码中,DemoContact是XPO类,但它也可以是Entity Framework实体类。在所有这些情况下,MyViewController控制器均以相同的方式运行。

您可能需要访问类型信息子系统的另一种情况是,您需要从外部类库向类或成员添加属性。有关详细信息,请参考如何在运行时自定义业务模型示例。

转载保留此链接,注明出处