在 Xamarin 上使用 Prism 时,如果 View 和 ViewModel 上的名称不匹配,我该如何发出警告?

When using Prism on Xamarin, how can I warn if the names on the View, and ViewModel don't match?

Prism 使用 MVVM 样式约定命名将 View 绑定到 Xamarin 应用程序上的 ViewModel。

我最近修改了一些演示代码,在花费太多时间调试后发现页面名称与视图不匹配。

如何启用日志记录或存在此类差异的预编译器警告?

为视图定位 ViewModel 由 ViewModelLocationProvider 在 Prism Core 中处理。你可以看到 here 它是如何实现的。如果您要覆盖默认行为并注入您自己的日志记录,您可以将其用作模板并在您的 App.OnInitialized 中调用 ViewModelLocationProvider. SetDefaultViewTypeToViewModelTypeResolver(YourCustomerLocatorFunctionHere)

至于任何预编译警告,您将自己在那里编写工具。

要添加到 Dan 的响应中,您可以绕过命名约定,使用 Container.RegisterTypeForNavigation<View, ViewModel>() 方法将 ViewModel 直接注册到 View。这也更快,因为不会使用反射来定位 VM。