Class AgentState
Base class for AgentState key/value state.
public abstract class AgentState : IPropertyManager, IAgentState
- Inheritance
-
AgentState
- Implements
- Derived
- Inherited Members
Constructors
AgentState(IStorage, string)
Initializes a new instance of the AgentState class.
public AgentState(IStorage storage, string stateName)
Parameters
storage
IStorageThe storage layer this state management object will use to store and retrieve state.
stateName
stringThe key for the state cache for this AgentState.
Remarks
This constructor creates a state management object and associated scope.
The object uses storage
to persist state property values.
The object uses the stateName
to cache state within the context for each turn.
Exceptions
- ArgumentNullException
storage
orstateName
isnull
.
- See Also
Properties
Name
The scope name of the state.
public string Name { get; }
Property Value
Methods
ClearState()
Clears the state.
public virtual void ClearState()
Remarks
This method clears the state cache. Call SaveChangesAsync(ITurnContext, bool, CancellationToken) to persist this change in the storage layer.
CreateProperty<T>(string)
Creates a named state property within the scope of a AgentState and returns an accessor for the property.
[Obsolete("Use AgentState.GetValue and AgentsState.SetValue")]
public IStatePropertyAccessor<T> CreateProperty<T>(string name)
Parameters
name
stringThe name of the property.
Returns
- IStatePropertyAccessor<T>
An accessor for the property.
Type Parameters
T
The value type of the property.
Exceptions
- ArgumentNullException
name
isnull
.
DeletePropertyValue(string)
Deletes a property from the state cache for this AgentState.
protected void DeletePropertyValue(string propertyName)
Parameters
propertyName
stringThe name of the property.
DeleteStateAsync(ITurnContext, CancellationToken)
Deletes state in storage.
public virtual Task DeleteStateAsync(ITurnContext turnContext, CancellationToken cancellationToken = default)
Parameters
turnContext
ITurnContextThe context object for this turn.
cancellationToken
CancellationTokenA cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
- Task
A task that represents the work queued to execute.
Exceptions
- ArgumentNullException
turnContext
isnull
.
DeleteValue(string)
Delete a property.
public void DeleteValue(string name)
Parameters
name
stringThe name of the property.
GetPropertyValue<T>(string)
Gets the value of a property from the state cache for this AgentState.
protected T GetPropertyValue<T>(string propertyName)
Parameters
propertyName
stringThe name of the property.
Returns
- T
A task that represents the work queued to execute.
Type Parameters
T
The value type of the property.
Remarks
If the task is successful, the result contains the property value, otherwise it will be default(T).
GetStorageKey(ITurnContext)
When overridden in a derived class, gets the key to use when reading and writing state to and from storage.
protected abstract string GetStorageKey(ITurnContext turnContext)
Parameters
turnContext
ITurnContextThe context object for this turn.
Returns
- string
The storage key.
GetValue<T>(string, Func<T>)
Get a property value.
public T GetValue<T>(string name, Func<T> defaultValueFactory = null)
Parameters
name
stringThe name of the property.
defaultValueFactory
Func<T>Defines the default value. Invoked when no value been set for the requested state property. If defaultValueFactory is defined as null in that case, the method returns null.
Returns
- T
Type Parameters
T
HasValue(string)
Checks for the existence of a property.
public bool HasValue(string name)
Parameters
name
stringThe name of the property.
Returns
IsLoaded()
True if state has been loaded.
public bool IsLoaded()
Returns
LoadAsync(ITurnContext, bool, CancellationToken)
Populates state from the storage layer.
public virtual Task LoadAsync(ITurnContext turnContext, bool force = false, CancellationToken cancellationToken = default)
Parameters
turnContext
ITurnContextThe context object for this turn.
force
boolOptional,
true
to overwrite any existing state cache; orfalse
to load state from storage only if the cache doesn't already exist.cancellationToken
CancellationTokenA cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
- Task
A task that represents the work queued to execute.
Remarks
LoadAsync loads State for the specified turn.
Exceptions
- ArgumentNullException
turnContext
isnull
.
SaveChangesAsync(ITurnContext, bool, CancellationToken)
Writes state to the storage layer.
public virtual Task SaveChangesAsync(ITurnContext turnContext, bool force = false, CancellationToken cancellationToken = default)
Parameters
turnContext
ITurnContextThe context object for this turn.
force
boolOptional,
true
to save the state cache to storage; orfalse
to save state to storage only if a property in the cache has changed.cancellationToken
CancellationTokenA cancellation token that can be used by other objects or threads to receive notice of cancellation.
Returns
- Task
A task that represents the work queued to execute.
Exceptions
- ArgumentNullException
turnContext
isnull
.
SetPropertyValue(string, object)
Sets the value of a property in the state cache for this AgentState.
protected void SetPropertyValue(string propertyName, object value)
Parameters
SetValue<T>(string, T)
Set a property value.
public void SetValue<T>(string name, T value)
Parameters
name
stringThe name of the property.
value
TThe property value.
Type Parameters
T
TryGetValue<T>(string, out T)
public bool TryGetValue<T>(string name, out T result)
Parameters
name
stringresult
T
Returns
Type Parameters
T