0

我有以下场景:OrderListViewModel,将订单列表提供给 OrderListView 中的 OrderListView 视图,选定的订单存储在 OrderListViewModel 的 SelectdOrder 属性中,因此当用户想要查看订单的详细信息时,他从列表中选择一个订单并导航到 OrderDetail 页面

//OrderListViewModel code
public void ShowOrder(){
    this.unityContainer.RegisterInstance(Order, new ExternallyControlledLifetimeManager());
    //Code to navigate tothe detail page
    NavigationService.Navigate("/Order/OrderView");
}

然后我有 OrderViewModel,在它的构造函数中:

public OrderViewModel(){
    order = unityContainer.Resolve<PedidoCompra>();
}

现在我得到的问题是,在某些情况下,我得到了这条消息的异常:值不能为空。参数名称:实例

当我从本地网络(托管服务器在办公室)访问该站点时,它表现良好,但是当我从 Internet 访问该站点时,它会收到上一个错误。有人遇到过这个吗?谢谢!

4

1 回答 1

1

这是基于发布的行为加上一些推断的猜测。

听起来像是Order使用 Web 服务/远程调用填充的。有时,当您使用 Unity 注册实例时,远程调用尚未返回(因为调用异步执行)。或者也许它没有返回一个实例(例如可能的错误等),但我怀疑它的时机。

它在本地网络上运行而不是在互联网上运行的原因是本地网络的响应时间比互联网快得多。远程调用通过本地网络快速返回,因此Order通常不为空。

于 2013-06-19T18:53:23.887 回答