Table of Contents

Blazor 集成

TKWF.Domain.Blazor 让 Blazor Server / WASM 应用无缝集成 TKWF 领域框架。


安装

dotnet add package TKWF.Domain.Blazor

配置

Blazor Server

// Program.cs
builder.ConfigWebAppDomain<AppUserInfo, AppDomainInitializer>()
    .UseBlazor()                           // Blazor 集成
    .UseGraphQLApiService<AppUserInfo>()   // 或 UseRestApiService
    .Build();

Blazor WASM

// Program.cs
builder.ConfigWebAssemblyDomain<AppUserInfo, AppDomainInitializer>()
    .UseApiClient<AppUserInfo>(options =>
    {
        options.BaseUrl = "https://api.example.com";
    });

在组件中使用

@* Pages/TodoPage.razor *@
@inject DomainUser<AppUserInfo> User
@inject TodoServiceClient Client

<h3>@User.UserInfo.DisplayName 的待办事项</h3>

@if (todos is null)
{
    <p>加载中...</p>
}
else
{
    <ul>
    @foreach (var todo in todos)
    {
        <li>@todo.Title — @(todo.IsDone ? "✅" : "⬜")</li>
    }
    </ul>
}

@code {
    private List<Todo>? todos;

    protected override async Task OnInitializedAsync()
    {
        todos = await Client.GetTodosAsync();
    }
}

自动注入

Blazor 集成自动注册以下服务:

服务 生命周期 说明
DomainUser<AppUserInfo> Scoped 当前用户
TodoServiceClient Scoped 自动生成的客户端代理
IAuthenticationService Scoped 认证服务

参考