Xamarin.ios Xamarin链接器:未找到MvvmCross.Platform.IoC.MVXPropertyInputor类型的默认构造函数

Xamarin.ios Xamarin链接器:未找到MvvmCross.Platform.IoC.MVXPropertyInputor类型的默认构造函数,xamarin.ios,mvvmcross,Xamarin.ios,Mvvmcross,这是与相同的问题,但解决方案对我不起作用。我有一个LinkerPleaseInclude.cs文件,其中包含以下内容: public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector) { injector = new MvvmCross.Platform.IoC.MvxPropertyInjector(); } 我使用Link All作为链接器行为,但我的印象是,在LinkerPleaseInclude

这是与相同的问题,但解决方案对我不起作用。我有一个LinkerPleaseInclude.cs文件,其中包含以下内容:

public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector)
{
    injector = new MvvmCross.Platform.IoC.MvxPropertyInjector();
} 
我使用Link All作为链接器行为,但我的印象是,在LinkerPleaseInclude.cs中包含上述内容会提示链接器不要删除它

不确定这是否重要,但以下是一些平台详细信息:

Xamarin Studio 6.3

MvvmCross 4.4.0


.NETCore UWP 5.3.3

名为
LinkerPleaseInclude.cs的文件本身不保留任何内容。这只是Mvvmcross使用的约定

因此,如果没有调用(或保留*)您的
Include
方法,那么链接器将不会标记它(根据需要),并且不会标记
mvxpropertyinject
.ctor


*
在方法上添加
[Preserve]
属性将确保链接器包含它(以及它调用的所有内容)。

名为
LinkerPleaseInclude.cs
的文件本身不会保留任何内容。这只是Mvvmcross使用的约定

因此,如果没有调用(或保留*)您的
Include
方法,那么链接器将不会标记它(根据需要),并且不会标记
mvxpropertyinject
.ctor


*
在方法上添加
[Preserve]
属性将确保链接器包含它(以及它调用的所有内容)。

[Preserve(AllMembers=true)]
属性添加到您的
LinkerPleaseInclude
类中,一举解决了所有包含成员的问题。谢谢有趣的是,还有其他几种类型/方法需要在该文件中添加代码,但显然不需要[Preserve]。如果任何其他使用的代码路径达到您需要的代码,则不需要使用
[Preserve]
。链接器静态分析器将确保这些被保留。这对我不起作用。将
[Preserve(AllMembers=true)]
属性添加到您的
LinkerPleaseInclude
类中,一举解决了所有包含成员的问题。谢谢有趣的是,还有其他几种类型/方法需要在该文件中添加代码,但显然不需要[Preserve]。如果任何其他使用的代码路径达到您需要的代码,则不需要使用
[Preserve]
。链接器静态分析器将确保这些被保留。这对我不起作用。