2017-04-26 43 views
1

這與this的問題相同,但該解決方案對我無效。我有以下內容的LinkerPleaseInclude.cs文件:Xamarin鏈接器:未找到類型爲MvvmCross.Platform.IoC.MvxPropertyInjector的默認構造函數

public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector) 
{ 
    injector = new MvvmCross.Platform.IoC.MvxPropertyInjector(); 
} 

我使用的所有鏈接的鏈接行爲,但我的印象是,包括LinkerPleaseInclude.cs上面會提示鏈接器不帶下出來。

不知道它的問題,但這裏有一些平臺詳細信息:

Xamarin Studio的6.3

MvvmCross 4.4.0

.NETCore UWP 5.3.3

回答

0

一個文件名爲LinkerPleaseInclude.cs本身並不保留任何東西。這只是Mvvmcross使用的慣例。

因此,如果沒有調用(或保留*)您的Include方法,那麼鏈接器將不會標記它(根據需要)並且MvxPropertyInjector .ctor不會被標記。

*在該方法上添加一個[Preserve]屬性將確保鏈接器包含它(以及它調用的所有內容)。

+0

將'[Preserve(AllMembers = true)]'屬性添加到您的'LinkerPleaseInclude'類,一舉解決了所有包含成員的問題 –

+0

工作。謝謝。有趣的是,還有其他幾種需要在該文件中添加代碼的類型/方法,但顯然不需要[Preserve]。 –

+0

如果任何其他*使用的代碼路徑到達您需要的代碼,則不需要'[Preserve]'。鏈接器靜態分析器將確保這些被保存。 – poupou

相關問題