Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5243c4a
Add .NET reference files for temporal-developer skill
donald-pinckney Mar 16, 2026
6f5e7dc
Fix .NET alignment issues from self-review
donald-pinckney Mar 16, 2026
d338213
Fix .NET correctness issues from verification pass
donald-pinckney Mar 16, 2026
d80bd35
Update supported language references to include .NET
donald-pinckney Mar 16, 2026
0114238
Edits to advanced features
donald-pinckney Apr 1, 2026
2ee9c02
edits to determinism protection, and move the .editorconfig section
donald-pinckney Apr 1, 2026
3709a85
missed one
donald-pinckney Apr 1, 2026
b41ecc6
edit determinism.md
donald-pinckney Apr 1, 2026
7ae7afb
edit error-handling.md
donald-pinckney Apr 1, 2026
4f19f25
edit gotchas.md
donald-pinckney Apr 1, 2026
c51d32b
edit patterns.md
donald-pinckney Apr 1, 2026
3aa4ce7
edit versioning.md
donald-pinckney Apr 1, 2026
2a38c83
edit observability.md
donald-pinckney Apr 1, 2026
93388e5
fix metrics
donald-pinckney Apr 1, 2026
54ce199
self-review round 1
donald-pinckney Apr 1, 2026
b4c958e
minor correctness fixed
donald-pinckney Apr 2, 2026
9be5c85
Merge branch 'main' into add-dotnet
donald-pinckney Apr 17, 2026
476f53b
Update references/dotnet/patterns.md
donald-pinckney Apr 17, 2026
58bbf52
address comments, clarify reference to earlier code snippet
donald-pinckney Apr 17, 2026
467fd27
clarify that operations are forbidden IN WORKFLOWS
donald-pinckney Apr 17, 2026
014eb91
cleanup workflow cancellation handling example
donald-pinckney Apr 17, 2026
76aa90a
add task token retrieval comment
donald-pinckney Apr 17, 2026
744cf8d
update .net requirements
donald-pinckney Apr 17, 2026
58f8972
Fix propagation of workflow cancellation
donald-pinckney Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix .NET correctness issues from verification pass
- patterns.md: Fix cancellation pattern to use official
  TemporalException.IsCanceledException(e) with detached CancellationTokenSource
- advanced-features.md: Fix DI hosting example to use official
  AddHostedTemporalWorker(clientTargetHost:, clientNamespace:, taskQueue:) pattern

Verified against official SDK README, API docs, and temporal-docs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
  • Loading branch information
donald-pinckney and claude committed Apr 1, 2026
commit d3382136ed42464df6dcbedc28bdef12ac76938a
24 changes: 11 additions & 13 deletions references/dotnet/advanced-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,19 +118,17 @@ The .NET SDK supports dependency injection via the `Temporalio.Extensions.Hostin
```csharp
using Temporalio.Extensions.Hosting;

var builder = Host.CreateApplicationBuilder(args);

builder.Services.AddTemporalClient(options =>
{
options.TargetHost = "localhost:7233";
options.Namespace = "default";
});

builder.Services.AddHostedTemporalWorker("my-task-queue")
.AddWorkflow<MyWorkflow>()
.AddScopedActivities<MyActivities>();

var host = builder.Build();
var host = Host.CreateDefaultBuilder(args)
.ConfigureServices(ctx =>
ctx.
AddScoped<IOrderRepository, OrderRepository>().
AddHostedTemporalWorker(
clientTargetHost: "localhost:7233",
clientNamespace: "default",
taskQueue: "my-task-queue").
AddScopedActivities<MyActivities>().
AddWorkflow<MyWorkflow>())
.Build();
await host.RunAsync();
```

Expand Down
10 changes: 6 additions & 4 deletions references/dotnet/patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -345,17 +345,19 @@ public class CancellableWorkflow
new() { StartToCloseTimeout = TimeSpan.FromHours(1) });
return "completed";
}
catch (OperationCanceledException) when (Workflow.CancellationToken.IsCancellationRequested)
catch (Exception e) when (TemporalException.IsCanceledException(e))
{
// Workflow was cancelled — perform cleanup
Workflow.Logger.LogInformation("Workflow cancelled, running cleanup");
Workflow.Logger.LogError(e, "Cancellation occurred, performing cleanup");
// Use a detached cancellation token for cleanup since Workflow.CancellationToken
// is now cancelled
using var detachedCancelSource = new CancellationTokenSource();
await Workflow.ExecuteActivityAsync(
(MyActivities a) => a.CleanupAsync(),
new()
{
StartToCloseTimeout = TimeSpan.FromMinutes(5),
// Use a non-cancelled token for cleanup
CancellationToken = CancellationToken.None,
CancellationToken = detachedCancelSource.Token,
Comment thread
donald-pinckney marked this conversation as resolved.
Outdated
});
throw; // Re-throw to mark workflow as cancelled
}
Expand Down