// Add all types, which are derived from AvaloniaObject, in the Avalonia.Controls.dll// to the type resolver.var resolver =newGenericTypeResolver<Button>();
IResolver resolver =newCustomTypeResolver1();// Map 'Button' to Button.resolver.TryAddType("Button",typeof(Button));// Map 'TextBlock' to TextBlock.resolver.TryAddType<TextBlock>("TextBlock");// map 'text' to TextBlock.resolver.TryAddType<TextBlock>("text");
var typeResolverManager =AcssContext.Default.GetService<ITypeResolverManager>();IResolver resolver =newCustomTypeResolver1();typeResolverManager.LoadResolver(resolver);typeResolverManager.LoadResolver(newGenericTypeResolver<App>());
在构建 Avalonia 服务时注册类型
如代码所示,添加默认的 AcssContext 后,可以直接针对程序集添加类型解析器。
privatestaticAppBuilderBuildAvaloniaApp(){returnAppBuilder.Configure<App>() .UsePlatformDetect() // Use avalonia css stuff. .UseAcssDefaultContext() // Type resolver for Nlnet.Avalonia.Svg .WithTypeResolverForAcssDefaultBuilder(newGenericTypeResolver<Icon>()) // Type resolver for Nlnet.Avalonia.SampleAssistant .WithTypeResolverForAcssDefaultBuilder(newGenericTypeResolver<Case>());}