You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7.0 Uno+ReactiveUI可用标准启动项目及更新文档求助

.NET 7.0 Uno Platform + ReactiveUI 全平台启动应用搭建方案

核心依赖修正(解决文档过时问题)

  • 替换过时NuGet包:原文档中的ReactiveUI.UnoUI已不再适配新版Uno的WinUI架构,必须替换为**ReactiveUI.Uno.WinUI**
  • 补充必要依赖:同时安装ReactiveUI.Fody(简化INotifyPropertyChanged实现)和Microsoft.Extensions.Hosting(用于依赖注入配置)

标准IHost与依赖注入配置

在项目根App.xaml.cs中完成Host初始化与ReactiveUI服务注册,这是统一全平台DI的关键:

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    var host = Host.CreateDefaultBuilder()
        .ConfigureServices(services =>
        {
            // 注册ReactiveUI核心服务
            services.AddReactiveUI();
            // 注册自定义视图模型
            services.AddTransient<MainViewModel>();
        })
        .Build();

    host.Start();

    // 初始化窗口(保留Uno原生窗口逻辑)
    var window = new MainWindow();
    window.Activate();
}

全平台(含WebAssembly)适配要点

WASM平台额外配置

在WASM项目的Program.cs中补充ReactiveUI服务注册:

var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");

// 添加ReactiveUI服务
builder.Services.AddReactiveUI();

await builder.Build().RunAsync();

视图-视图模型绑定规范

使用ReactiveUI的WhenActivated模式处理生命周期绑定,避免内存泄漏:

public sealed partial class MainPage : Page, IViewFor<MainViewModel>
{
    public MainPage()
    {
        this.InitializeComponent();
        // 通过DI获取视图模型(或直接实例化)
        ViewModel = App.Current.Services.GetRequiredService<MainViewModel>();
        
        this.WhenActivated(disposables =>
        {
            // 绑定示例:将视图模型的Greeting属性绑定到TextBlock
            this.OneWayBind(ViewModel, vm => vm.Greeting, v => v.GreetingTextBlock.Text)
                .DisposeWith(disposables);
        });
    }

    public MainViewModel ViewModel { get; set; }
    object IViewFor.ViewModel { get => ViewModel; set => ViewModel = (MainViewModel)value; }
}

避坑注意事项

  • 不要依赖旧版ReactiveUI.Samples示例,直接基于Uno官方.NET7模板搭建项目后引入最新ReactiveUI包
  • 确保所有平台项目的NuGet包版本统一,尤其是Uno SDK和ReactiveUI相关包
  • WASM平台可启用AOT编译(项目属性中配置),解决部分运行时兼容性问题

内容的提问来源于stack exchange,提问作者kyurkchyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:40:18