Skip to main content
All docs
V24.2
.NET 8.0+

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

XAF0003: XPO business classes should be public

Severity: Warning

XAF requires that the XPO business object’s class should be public. Otherwise, it is not recognized as a business object.

This diagnostic works only for XPO classes derived from the DevExpress.Xpo.PersistentBase class. This diagnostics does not work for abstract classes.

#Examples

#Invalid Code

using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;

namespace MySolution.Module.BusinessObjects{
    // The class must be public
    //[DefaultClassOptions]
    //class ExampleObject1 : BaseObject { // Warning: XAF0003
    //    public ExampleObject1(Session session) : base(session) {}
    //}

    // The class must be public 
    //[DefaultClassOptions]
    //private class ExampleObject2 : BaseObject { // Warning: XAF0003
    //    public ExampleObject1(Session session) : base(session) {}
    //}
// ...
}

#Valid Code

using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl;
using DevExpress.Xpo;

namespace MySolution.Module.BusinessObjects{
    // This class meets the requirements
    [DefaultClassOptions]
    public class ExampleObject1 : BaseObject {
        public ExampleObject1(Session session) : base(session) {}
        // ...
    }
}

#How to Fix

Declare the business object’s class with the public keyword.