# NPOBase (NonPersistentBaseObject)

The NPOBase object extends the NonPersistentBaseObject from DevExpress as an abstract class. It provides a new SetPropertyValue method that is consistent with XPO objects. This is particularly useful if you are using our Llamachant Code Snippets.

```
namespace LlamachantFramework.Module.NonPersistent
{
    public abstract class NPOBase : NonPersistentBaseObject
    {
        protected void SetPropertyValue<T>(string propertyname, ref T store, T value)
        {
            store = value;
            OnPropertyChanged(propertyname);
        }
    }
}
```

## Usage

```
[DomainComponent]
public class TestWorkflowSettingsParameters : NPOBase
{
    private string _EmailAddress;
    public string EmailAddress
    {
        get { return _EmailAddress; }
        set { SetPropertyValue<string>(nameof(EmailAddress), ref _EmailAddress, value); }
    }
}
```

## Usage

## Usage

[ITrackedObject Interface](/content/llamachantframeworkmoduleslegacy/9/index.html)

[IObjectSpace Extensions](/content/llamachantframeworkmoduleslegacy/10/index.html)
