Caliburn.Micro 版本 4.0.212。 项目版本.NET6
使用 Caliburn.Micro 3.0 和 .Net Framework 4.7.2 即可工作
当我尝试打开位于另一个项目中的简单 viewModel 时,出现错误:“该组件没有由 URI 标识的资源” 我正在使用 Caliburn Micro 示例:https://github.com/Caliburn-Micro/Caliburn.Micro/tree/master/samples/tutorals/WPF/Wpf.Tutorial
为了重现该错误,我为解决方案创建了另一个项目:“CommonView” 我将 AboutViewModel 从主项目移至此项目,如下图所示:
在引导程序中,我需要修改 SelectAssemblies 方法以添加此新项目中的文件
protected override IEnumerable<Assembly> SelectAssemblies()
{
var assemblies = new List<Assembly>();
assemblies.AddRange(base.SelectAssemblies());
string[] fileEntries = Directory.GetFiles(Directory.GetCurrentDirectory());
foreach (string fileName in fileEntries)
{
if (!fileName.Contains(".conf") && fileName.Contains("CommonView.dll"))
{
assemblies.Add(Assembly.LoadFile(fileName));
}
}
return assemblies;
}
现在,当我从按钮调用 About 类时,Caliburn 尝试获取实例,但未找到,因此出现错误。
protected override object GetInstance(Type service, string key)
{
var instance = _container.GetInstance(service, key);
//instance is null
return instance;
}
但是,如果我在调用 CategoryViewModel 时进行调试,它会正确返回实例
我看到这篇文章,其中 Juan Carlos 重写了 InitializeComponent(),但我认为它应该有一个更简单的方法:该组件没有由 uri 标识的资源
提前谢谢您。 问候