[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, Inherited = true)]
public class DomainComponentAttribute :
<AttributeUsage(AttributeTargets.Class Or AttributeTargets.Interface, Inherited:=True)>
Public Class DomainComponentAttribute
Participation in generation of the Application Model means that the BOModel node will expose a child node corresponding to the DomainComponentAttribute target. The Views node will contain ListView and DetailView nodes for the DomainComponentAttribute target.
You do not need to use the DomainComponentAttribute attribute in the following cases:
The target is an XPO persistent class declared within an XAF module.
The target is an Entity Framework class registered in a DbContext which is declared within an XAF module.
These classes are collected and registered automatically.
However, the DomainComponentAttribute is required when you declare a non-persistent class and want to display Views of this class in a UI.
When the DomainComponentAttribute is applied to an interface, this interface is considered to be a Domain Component