Caliburn.Micro DisplayRootViewFor 抛出 NullReferenceException

2024-03-21

我的引导程序中有以下代码:

private SimpleContainer container;

protected override void Configure()
{
  container = new SimpleContainer();
  container.Singleton<IEventAggregator, EventAggregator>();
  container.PerRequest<InitialViewModel>();  
}

protected override object GetInstance(Type service, string key)
{
  return container.GetInstance(service, key);
}

protected override IEnumerable<object> GetAllInstances(Type service)
{
  return container.GetAllInstances(service);
}

protected override void BuildUp(object instance)
{
  container.BuildUp(instance);
}

在 OnStartup 方法中,我调用DisplayRooViewFor method:

protected override void OnStartup(object sender, StartupEventArgs e)
{ 
  DisplayRootViewFor<InitialViewModel>();
}

这是初始视图模型:

    private IEventAggregator eventAggregator;    

    public InitialViewModel(IEventAggregator ea) 
    {
      eventAggregator = ea;
    }

不幸的是,它抛出了一个空引用异常:

发生“System.NullReferenceException”类型的异常 Caliburn.Micro.Platform.dll 但未在用户代码中处理

我查看了CM的源代码并使用相同的代码进行了测试:

  protected override void OnStartup(object sender, StartupEventArgs e)
    {
      var viewModel = IoC.GetInstance(typeof(InitialViewModel), null);
      var view = ViewLocator.LocateForModel(viewModel, null, null);
      ViewModelBinder.Bind(viewModel, view, null);

      var activator = viewModel as IActivate;
      if (activator != null)
        activator.Activate();

      DisplayRootViewFor<InitialViewModel>();
    }

奇怪的是,这些线路没有例外。两个都view and 视图模型有引用,并且构造函数初始视图被调用,但是当它到达并调用时DisplayRootViewFor,它仍然抛出异常。

我应该改变什么?


我的容器缺少一个关键组件:

container.Singleton<IWindowManager, WindowManager>();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Caliburn.Micro DisplayRootViewFor 抛出 NullReferenceException 的相关文章

  • 如何在 ASP.NET MVC 中将 XML 文件发送到客户端

    在 ASP NET MVC 中 我有一个数据库表 我想在某个视图页面上有一个按钮 如果某个用户单击该按钮 我的应用程序将生成包含数据库中所有行的 XML 文件 然后 应将包含 XML 的文件发送到客户端 以便用户看到下载弹出窗口 同样 我希
  • Boost MPI 在监听列表时不会释放资源?

    这是一个后续问题如何释放 boost mpi request https stackoverflow com questions 44078901 how do i free a boostmpirequest 我在监听列表而不是单个项目时
  • 头文件中实现的函数的静态与内联

    我想到的方式inline在 C 中用于链接 作用域 我把它放在同一个篮子里extern and static对于全局对象 通常 对于在头文件中实现的函数 我的首选解决方案是将其设为静态 In Foo h static void foo Do
  • C# 中类似图的实现

    所以我有一个对象 我们称之为 Head 它有一个对象列表 C C1 C2 C3 T T1 T2 和 M M1 M2 并且所有这些都是相互关联的 例如 Head gt C1 C2 C3 T1 T2 M1 M2 T1 gt C1 C2 T2 g
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • QSpinBox 输入 NaN 作为有效值

    我正在尝试扩展 QSpinBox 以能够输入 NaN 或 nan 作为有效值 根据文档 我应该使用 textFromValue valueFromText 和 validate 函数来完成此操作 但我无法让它工作 因为它仍然不允许我输入除数
  • 检测反射 DLL 注入

    在过去的几年中 恶意软件 以及一些渗透测试工具 如 Metasploit 的 meterpreter 负载 已经开始使用反射 DLL 注入 PDF http www harmonysecurity com files HS P005 Ref
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • 本地时间的内存需要释放吗?

    void log time t current time 0 tm ptm localtime current stuf 只是想确定 我是否需要在方法结束时释放 tm 指针分配的内存 不 你不应该释放它 该结构是静态分配的 检查文档 htt
  • 冒号在c中起什么作用?

    我在课堂上得到了这个例子 但我不确定它的作用 我知道冒号添加了一个位字段 但我仍然不确定这个问题 a b gt 0 3 1 运算符称为条件运算符 If b值为 gt 0 价值3被分配给a否则值1被分配给a 以 Kernighan Ritch
  • linq where 子句和 count 导致 null 异常

    除非 p School SchoolName 结果为 null 否则下面的代码将起作用 在这种情况下 它会导致 NullReferenceException if ExistingUsers Where p gt p StudentID i
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 在 C# 命令行应用程序中包含并执行 EXE

    所以我找到了一个很棒的小 EXE 命令行应用程序 我们将其称为 program exe 它输出一些我想用 C 操作的数据 我想知道是否有一种方法可以将program exe 打包 到我的Visual Studio项目文件中 这样我就可以将编
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • C - 获取外部IP地址

    我需要通过 C C 调用获取我的公共 IP 地址 我知道作为替代方案 我可以从 http whatismyip akamai com 等外部链接获取 我写了一个示例来获取外部IP地址 但我的程序没有返回外部 IP 地址 我正在获取内部 IP
  • Unity - 在生成时获取随机颜色

    我有一个小问题 我想在我的场景中生成四边形 它们都应该有红色或绿色作为材质 但 Random Range 函数只能是 int 我该如何解决它 void SpawningSquadsRnd rndColor 0 Color red rndCo
  • 检查一个数是否是完全平方数?

    我认为以下代码存在精度问题 bool isPerfectSquare long long n long long squareRootN long long sqrt n 0 5 return squareRootN squareRootN
  • Asp.Net Core 中的 SSL 不起作用

    我从 Visual Studio 创建了一个简单的 Web 应用程序Web Application Net Core 具有个人用户帐户授权的模板 然后 我启用了 SSLProject gt MyProject Properties 将带有
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • Three.js 的外观似乎被翻转了

    我这里有一个演示 测试场地 http www myuplay com game test html or Backup http direct myuplay com game test html 由于某种原因 即使鼠标矢量是正确的 我的对
  • R - 检测到非树模型!此功能只能与树模型一起使用

    我是 R 新手 当我尝试跑步时xgb importance 我得到这个 Error in xgb model dt tree feature names feature names text text Non tree model dete
  • 当父溢出更改时,firefox 过渡会中断

    我今天遇到一个问题 花了我很长时间来调试 我在网上找不到解决方案 所以我认为记录下来会很有用 如果父级的 溢出 属性与转换一起更改 则转换似乎在 Firefox 上不起作用 即 parent overflow hidden parent h
  • 在 MVC 4 中将对象转换为 JSON

    我正在使用将对象转换为 JSONJavaScriptSerializer我可以在服务器代码中看到这个 JSON 输出 UserId 1 UserName Admin 但在用户界面中它被转换为如下所示 quot UserId quot 1 q
  • 不能在常量列表中使用变量索引

    使用设备建模语言 DML 1 4 版 我创建了一个列表参数 例如 param X 0 0 0 0 0 1 我想在使用变量的方法中访问它们 例如 method get var uint32 idx gt uint32 return X idx
  • 如何通过 ID 以外的方式获取 RESTful 资源?

    在某些情况下 我可能需要通过 ID 以外的参数来查找对象 正确的 RESTful 方法是什么 例如我可能想找到一个User by username and password 所以严格的 RESTful GET users 1 行不通 根据R
  • 加速 WPF 调整大小/重绘

    我注意到即使调整空 WPF 窗口的大小也会显示黑色区域 我桌面上的很多程序都没有这些问题 所以我想知道 有没有办法设置调整大小重绘优先级或其他东西 并加快 WPF 窗口大小的调整速度 或者这个问题是不可避免的 这是 WPF 工作方式的继承
  • Java 加密替代硬编码密钥

    我是加密新手 我查看了 javax crypto 文档并使用此代码对文件进行了加密 File saveFile new File Settings set saveFile delete FileOutputStream fout new
  • 映射 MMIO 区域写回不起作用

    我希望对 PCIe 设备的所有读写请求都由 CPU 缓存进行缓存 然而 它并没有像我预期的那样工作 这些是我对回写 MMIO 区域的假设 对 PCIe 设备的写入仅在缓存回写时发生 TLP 有效负载的大小是缓存块大小 64B 然而 捕获的
  • p2p0是android中WIFI DIRECT的无线接口吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我打印 Android 设备中的所有接口时 03 10 19 50 15 484 I System out 22415 lo 03 10
  • PyQt 4 UI 冻结

    下面的程序应该只是累加和 int 并在标签中显示其值 但过了一会儿 GUI 停止工作 而循环继续 from PyQt4 import QtGui QtCore import sys class main window QtGui QWidg
  • JavaScript 中的“可绑定”变量?

    从我对 Flex 的一点经验中 我了解了可绑定变量 例如 文本元素的内容会随着变量的值而变化 我想知道是否可以在 JavaScript 中做这样的事情 例如 假设我有一个 h1 我想包含文档的标题 这可以很容易地完成document get
  • “equal”模板功能是如何实现的? (谓词版本)

    我正在阅读 Accelerated C 一书 其中一个练习要求我们模拟标题中的 equal 函数 到目前为止 我已经实现了简单的版本 它采用三个参数 如下所示 template
  • 禁用适用于平板电脑和 iPad 的 Magento 移动主题

    我制作了一个包含桌面和移动主题的网站 它工作得很好 但在平板电脑和 iPad 中它显示了我不想要的移动主题 所以我使用以下异常 iPhone iPod BlackBerry Pre Palm Googlebot Mobile mobi Sa
  • 不同 django 模型的公共字段集中在一处

    我有一些在多个模型中重复的列 有什么解决方案可以将它们放置在某个地方并使用任何模型吗 您可以通过创建基类并在模型中继承它们来实现这一点 Example class TimestampsModel models Model classmeth
  • Java Swing 在 Eclipse Oxy 4.7.3a 上运行?

    我正在尝试在 macOS high Sierra 上的 eclipseoxygen 4 7 3a 中使用 windowbuilder 它安装得很好 但每次我尝试打开设计部分时 它都会显示此错误 Eclipse 在 0 下运行 但是这个 Ja
  • 在 select2 上设置标签值

    我的页面上有选择字段
  • 从数据库中删除文件和相应条目

    我有一个处理文件管理的网站 用户可以上传文件 添加描述 编辑和删除 这种情况的最佳实践是什么 我将文件存储在文件系统中 我该如何处理文件的删除 在这种情况下 我必须删除实体 数据库中的文件和条目 第一种情况是我删除文件 如果没有错误 我从数
  • 从 Tokio 应用程序使用 Actix:混合 actix_web::main 和 tokio::main?

    目前我主要写的是异步示例Reqwest library https crates io crates reqwest tokio main async fn main gt Result lt Box
  • Caliburn.Micro DisplayRootViewFor 抛出 NullReferenceException

    我的引导程序中有以下代码 private SimpleContainer container protected override void Configure container new SimpleContainer container