升级指南
当前版本:Crystal.Avalonia 3.1.0
从 3.0.0 起的版本约定: 3.0.x 只修缺陷;新抽象走 3.1+;破坏性变更走 4.0。(2.0.1 曾在补丁号删除 CreateShellFromDi —— 不会再这样做。)
| 来源 | 指南 |
|---|---|
| 3.0.x | 从 3.0 升级 — 实例 CrystalOptions / ConfigureOptions |
| 2.0.x | 从 2.0 升级 — 实例 MvvmManager、EnableViewLocator、OnLoadedAsync(bool) |
| 2.0.0 | 先按 从 2.0.0 升级,再升 3.0 / 3.1 |
| 1.2.x | 从 v1.2 升级,再 从 2.0 升级 |
快速参考(3.1.0)
public override void ConfigureOptions(CrystalOptions options)
{
options.EnableViewLocator = true; // 默认
}
public override void RegisterServices(IServiceCollection services)
{
services.AddMvvmTransient<MainView, MainViewModel>();
}
public override void CreateShell(IServiceProvider sp)
{
CreateShell<MainWindow, MainView>();
}
- ViewModel → DI(
AddMvvm*) - View → 映射在
CrystalApplication.Mvvm;由 XAML 或ViewLocator创建 - Shell →
CreateShell<...>()使用new,不进 DI ConfigureOptions/CrystalApplication.Options→ ViewModel-first 的DataTemplates(EnableViewLocator)及其他框架开关;同时是 DI 单例