Xamarin iOS上此平台例外不支持该操作

问题描述 投票:2回答:1

我正在使用DryIoC容器,并且在尝试解决其中一种实现时,出现以下错误:

[Xamarin iOS上此平台例外不支持该操作

第一次解决问题的工作很好,但是当我第二次尝试调用解决方法时,它给出了这个例外。

下面是我的注册方式:

container.Register<IFoo, Foo>(Reuse.ScopedOrSingleton);

解决呼叫:

container.Resolve<IFoo>()

我检查了Github中是否已报告此错误。

根据关于该讨论的评论之一,我在下面的代码中实现了该代码,此后似乎工作正常,但我不确定设置此规则的目的是什么,并且设置此规则是否有任何缺点。] >

var container = new Container(rules => rules.WithoutFastExpressionCompiler());
    

我正在使用DryIoC容器,而尝试解析其中一种实现时,出现以下错误:Xamarin iOS上此平台异常不支持操作解析工作的...

c# .net xamarin inversion-of-control dryioc
1个回答
0
投票

Xamarin iOS不支持IL Emit和DynamicMethod编译,这是用于创建对象图的默认DryIoc机制(通过调用已编译的委托)。但是,可以用解释“牺牲”一些已编译的委托性能来代替编译。牺牲不是那么简单,而是取决于您的情况,而且由于编译本身很昂贵,因此无论如何第一次解释都使用解释。有关更多详细信息和性能编号,请点击此处:https://github.com/dadhi/DryIoc/issues/199#issuecomment-573291497

© www.soinside.com 2019 - 2024. All rights reserved.