Class WorkflowAttribute
- Namespace
- Temporalio.Workflows
- Assembly
- Temporalio.dll
Designate a type as a workflow.
[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Interface, Inherited = false)]
public sealed class WorkflowAttribute : Attribute
- Inheritance
-
WorkflowAttribute
- Inherited Members
Remarks
This attribute is not inherited, so if a base class has this attribute the registered subclass must have it too. Workflows must have a no-arg constructor unless there is a constructor with WorkflowInitAttribute. All workflows must have a single WorkflowRunAttribute.
Constructors
WorkflowAttribute()
Initializes a new instance of the WorkflowAttribute class with the default name. See Name.
public WorkflowAttribute()
WorkflowAttribute(string)
Initializes a new instance of the WorkflowAttribute class with the given name.
public WorkflowAttribute(string name)
Parameters
Properties
Dynamic
Gets or sets a value indicating whether the workflow is dynamic. If a workflow is dynamic, it cannot be given a name in this attribute and the run method must an array of IRawValue.
public bool Dynamic { get; set; }
Property Value
FailureExceptionTypes
Gets or sets the types of exceptions that, if a workflow-thrown exception extends, will
cause the workflow/update to fail instead of suspending the workflow via task failure.
These are applied in addition to
WorkflowFailureExceptionTypes for the
overall worker. If typeof(Exception)
is set, it effectively will fail a
workflow/update in all user exception cases.
public Type[]? FailureExceptionTypes { get; set; }
Property Value
- Type[]
Remarks
WARNING: This property is experimental and may change in the future. If unset (i.e. left null), currently the default is to only fail the workflow/update on FailureException + cancellation and suspend via task failure all others. But this default may change in the future.
Name
Gets the workflow type name. If this is unset, it defaults to the unqualified type name. If the type is an interface and the first character is a capital "I" followed by another capital letter, the "I" is trimmed when creating the default name.
public string? Name { get; }