You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.1 KiB
C#

namespace DS.Module.Core.Data
{
/// <summary>
/// 任务模块之间用于传入、获取数据的容器
/// </summary>
public class TaskFlowDataContext
{
private readonly Dictionary<string, object> dataContext = new();
/// <summary>
///
/// </summary>
public TaskFlowDataContext(string key, object value)
{
dataContext.Add(key, value);
}
/// <summary>
///
/// </summary>
public void Set(string key, object value)
{
if (ContainsKey(key))
{
dataContext[key] = value;
}
else
{
dataContext.Add(key, value);
}
}
/// <summary>
///
/// </summary>
public T? Get<T>(string key)
{
if (dataContext.ContainsKey(key))
{
return (T)dataContext[key];
}
return default;
}
/// <summary>
///
/// </summary>
public bool ContainsKey(string key) => dataContext.ContainsKey(key);
}
}