Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >UWP Mvvm棱镜ConfirgureContainer问题

UWP Mvvm棱镜ConfirgureContainer问题
EN

Stack Overflow用户
提问于 2018-11-06 03:55:18
回答 2查看 79关注 0票数 0

我在一个UWP应用程序中使用Prism。中的每个视图模型都注册了一些启动args

代码语言:javascript
运行
AI代码解释
复制
    protected override async void ConfigureContainer()

我添加了异步关键字,因为我想初始化一些数据库连接,这些连接在ConfigureContainer()中是可使用的。但现在我注意到,应用程序启动(有时)时,启动时会对启动ags进行安装,从而导致null ref异常。我不应该在这个方法中初始化任何连接吗?为什么应用程序不在ConfigureContainer()上等待?当应用程序启动时,我应该将异步初始化方法调用放在哪里?这是方法。

代码语言:javascript
运行
AI代码解释
复制
 protected override async void ConfigureContainer()
    {


        // register a singleton using Container.RegisterType<IInterface, Type>(new ContainerControlledLifetimeManager());
        base.ConfigureContainer();
        Container.RegisterInstance<IResourceLoader>(new ResourceLoaderAdapter(new ResourceLoader()));
        DocumentClient client = new DocumentClient(new Uri("https://docdb.etc/"),
             "my key", new ConnectionPolicy() { ConnectionMode = ConnectionMode.Direct });
        try
        {
            await client.OpenAsync();
        }
        catch (Exception ex)
        {

            throw new Exception("DocumentClient client could not open");
        }
        IDataAccessBM _db = new DataAccessDocDb(client, "ct", "ops");
        AddressSearch addresSearcher = new AddressSearch(_db, 4);
        StartUpArgs startUpArgs = new StartUpArgs
        {
            postCodeApiKey = "anotherKey",
            db = _db,
            fid = "bridge cars",
            dialogService = new DialogService(),
            addressSearcher = addresSearcher
        };
        startUpArgs.zoneSet = await _db.ZoneSetGetActiveAsync("another key");
        Container.RegisterInstance(startUpArgs);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-06 05:52:31

不要将初始化代码放入

代码语言:javascript
运行
AI代码解释
复制
 protected override  void ConfigureContainer()

放进去:

代码语言:javascript
运行
AI代码解释
复制
 protected override async Task OnInitializeAsync(IActivatedEventArgs args)

容器可以从那里访问,并且方法是异步的。

票数 0
EN

Stack Overflow用户

发布于 2018-11-06 05:41:49

我不应该在这个方法中初始化任何连接吗?

至少不是异步的。我宁愿创建一个(可能是异步的)按需创建连接的ConnectionFactory

为什么应用程序不等待ConfigureContainer()?

因为一个人不能await void。这就是为什么不鼓励使用async void .Task in async Task才是awaited,而不是async

当应用程序启动时,我应该将异步初始化方法调用放在哪里?

没有像async构造函数或async new这样的东西。在这里探索您的选择的一个良好开端是这篇文章是斯蒂芬·克利里写的

Container.RegisterInstance<IResourceLoader>(new ResourceLoaderAdapter(new ResourceLoader()));

注册实例是丑陋的,而且大多数情况下都是不必要的(这就是一个例子)。如果您重构代码以让容器完成其工作,异步初始化问题就会消失。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53171411

复制
相关文章
MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
众所周知,MybatisPlus在处理单表DAO操作时非常的方便。在处理多表连接连接查询也有优雅的解决方案。今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询。
赛先生和泰先生
2022/11/07
6.9K0
MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
Hive窗口函数01-SUM、MIN、MAX、AVG
order by : 在同一个组内,先累加完相同createtime的pv,再累加其他createtime的pv, 比如 : 现在在表末尾加一条数据cookie1 2015-04-10 1 1,那么结果就是 :
CoderJed
2018/09/13
2.8K0
Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
功能描述:对一组内发生的事情进行累积计数,如果指定*或一些非空常数,count将对所有行计数,如果指定一个表达式,count返回表达式非空赋值的计数,当有相同值出现时,这些相等的值都会被纳入被计算的值;可以使用DISTINCT来记录去掉一组中完全相同的数据后出现的行数。
python与大数据分析
2022/03/11
5950
Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
SQL聚合函数 AVG
AVG返回NUMERIC或DOUBLE数据类型。 如果expression是DOUBLE类型,AVG返回DOUBLE; 否则,它返回NUMERIC。
用户7741497
2022/03/27
3.3K1
【说站】javascript max和min的使用
以上就是javascript max和min的使用,希望对大家有所帮助。更多Javascript学习指路:Javascript
很酷的站长
2022/11/24
6340
【说站】javascript max和min的使用
Java8 | 如何使用Group By 聚合操作集合数据?
集合数据分组很多在实际开发过程中是相当常见,比如传给前端的产品数据按照类型进行分组。最常见的方式是遍历整个集合,然后通过判断类型构造存储不同类型的集合。那么有没有更好的办法,Java8 groupingBy能帮到我们。
玖柒的小窝
2021/11/28
1.7K0
SQL聚合函数 MIN
MIN聚合函数返回表达式的最小值(最小值)。通常,表达式是查询返回的多行中的字段名称(或包含一个或多个字段名称的表达式)。
用户7741497
2022/03/27
1.3K0
集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
1. 代码写法: (要求 JDK 1.8 或 1.8 以上) package gentle.entity; import lombok.Data; /** * * @author silence * @date 2018/7/6 10:58 */ @Data // 此注解可自动生成set/get、自动重写equals/hashcode 等,不用在代码中书写相关代码。 public class User { private String name; private int a
微风-- 轻许--
2022/04/13
6290
集合去重 (集合元素为引用类型)--- java 8 新特性 --- 根据元素单属性、多属性实现去重
CSS之关于min-width、max-width、min-height和max-height的使用
设div父盒子A中有个div子盒子B,设B的min-height为H,则H为盒子B的最小高度值,意思是:
xinxin-l
2022/03/29
1.4K0
CSS之关于min-width、max-width、min-height和max-height的使用
C语言 | 选择1或2输出max或min
例36:C语言实现输入两个整数,然后让用户选择1或者2,选择1是调用max,输出两者中的大数,选择2是调用min,输出两者中的小数。
小林C语言
2020/12/16
1.2K0
C语言 | 选择1或2输出max或min
Pytorch的max()与min()函数
函数定义:torch.max(input, dim, max=None, max_indices=None,keepdim=False)
狼啸风云
2020/05/07
7.1K0
SQL聚合函数 MAX
MAX聚合函数返回表达式的最大值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。
用户7741497
2022/03/27
1.2K0
集合:按元素的中文属性排序
1. 要排序的元素类: public static class NameCount implements Comparable<NameCount> { Collator collator = Collator.getInstance(java.util.Locale.CHINA); @ApiModelProperty(value = "名") private String name; @ApiModelProperty(value =
微风-- 轻许--
2020/04/14
1.4K0
MySQL中min和max查询优化
测试版本:Server version:        5.1.58-log MySQL Community Server (GPL)
星哥玩云
2022/08/17
1.3K0
JAVA 集合list,Map删除元素的方法总结
这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,所以会导致你在遍历的时候漏掉某些元素。比如当你删除第1个元素后,继续根据索引访问第2个元素时,因为删除的关系后面的元素都往前移动了一位,所以实际访问的是第3个元素。因此,这种方式可以用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用。
traffic
2020/04/09
2.9K0
MADlib——基于SQL的数据挖掘解决方案(26)——聚类之k-means方法
聚类算法大都是几种最基本的方法,如k-means、层次聚类、SOM等,以及它们的许多改进变种。MADlib提供了一种k-means算法的实现。本篇主要介绍MADlib的k-means算法相关函数和应用案例。
用户1148526
2019/05/25
8360
Hibernate对象导航语言
文章目录 1. HQL - 对象导航语言 1.1. 简介 1.2. 步骤 1.3. 准备 1.4. 实体查询 1.4.1. 格式 1.4.2. 拓展 1.4.3. 实例 1.5. 部分字段的查询 1.5.1. 格式 1.5.2. 实例 1.6. 多表联合查询 1.7. 前提 1.7.1. 常见的联合查询方式 1.7.2. 对象方式关联查询 1.7.2.1. 实例 1.7.3. join方式查询 1.7.3.1. 左外连查询 1.7.3.1.1. 格式 1.7.3.1.2. 实例 1.7.3.2. 右外连
爱撒谎的男孩
2019/12/31
9050
Max-Min Fairness带宽分配算法
最近再写一个网络仿真器,里面参考了Max-MinFairness算法,这是一种比较理想、公平的带宽分配算法。其思路主要如下:首先是算法的准备,考察某一时刻的网络中所有的flow,由于每条flow都有其各个link,因此可以得到各个link上所有流经的flow,然后开始迭代,各个link都把capacity平均分给所有流经的flow,接着每条flow的速度就等于其最小link分配的带宽,然后每条link的剩余带宽就等于link的capacity减去所有流经的flow的速度的总和,再然后把link的剩余带宽作为
forrestlin
2018/05/23
1.9K0
min-width 属性
min-widht 规定设置最小宽度,且能阻止 height 属性的设置值比 min-width 小。
Html5知典
2019/11/26
8120
min-height 属性
min-height 规定标签设置最小高度,且能阻止height属性的设置值比min-height小。min-height 可覆盖 height , min-height 可覆盖 max-height。
Html5知典
2019/11/26
1.2K0

相似问题

Server查询- Min、Max、Avg聚合问题

14

如何在java上做Groupby,Sum,Avg,Min,Max集合?

10

在南迁移中使用聚合器(Min、Max、Avg)

10

如何使用sqlbuilder.smartsql使用聚合函数(avg、count、max、min)

14

如何模拟聚合函数avg,sum,max,min,和PouchDB?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文