需要在构造函数中使用async/await的需求,将我引导到使用静态工厂方法来实例化一个对象。如果没有async/await,���的对象会像下面这样在XAML中实例化:
<viewModel:MyClass x:key="myClass"/>
如果我使用静态工厂方法(称为CreateAsync()),那么对象实例化代码如下:
MyClass myClass = await MyClass.CreateAsync();
所有的代码都很好,按预期工作。但是我想要在XAML中实现与上述代码等效的功能,如果可能的话。简单搜索后发现可以使用以下方式,使用新属性FactoryMethod来指定工厂方法。
<viewModel:MyClass x:FactoryMethod="CreateAsync" x:key="myClass"/>
但是,问题在于x:FactoryMethod仅支持XAML 2009(而不是XAML 2006)。此外,根据我的简要研究,XAML 2009尚未得到支持。
那么,在给定一个静态工厂方法的情况下,如何在XAML中实例化对象,例如上面的简单示例?考虑到目前还无法使用x:FactoryMethod,有没有解决办法呢?