gpt4 book ai didi

c# - Xamarin.iOS 链接器删除反射所需的类中的成员

转载 作者:可可西里 更新时间:2023-11-01 03:37:26 25 4
gpt4 key购买 nike

在 Xamarin 项目中,我将链接器行为设置为“链接所有引用”。这样做时,程序集通过删除未使用的成员得到优化。一个问题是,它实际上并没有意识到我们需要它们进行反射。我知道我们可以使用 Preserve 属性来告诉链接器将所有符号保留在类中,但是如果程序集是 DLL 或者只是不是 iOS 项目(不引用单点程序集,并且不能).有没有一种方法可以将库中的所有类设置为“保留”、忽略它或仅设置要优化的某些类(反向 PreserveAttribute)?

最佳答案

@SharpMobileCode 给出了很好的解释,但还有其他两种方法可以解决这个问题。

  1. 使用 XML 文件并在项目的选项中使用 --xml=your.file,在 Additional mtouch arguments 下。当您无法更改程序集的源代码时 - 或者 - 当您想要/需要使用工具来生成要保留的成员列表时,这可能很有用;

  2. 使用新的 Preserve(Type) 构造函数。这允许您在已经引用了 Xamarin.iOS.dll不同程序集(例如您的主 .exe)中添加保留指令(因此无需定义您的自己的类型)。例如

[程序集:保留(typeof(MyType),AllMembers = true)]

关于c# - Xamarin.iOS 链接器删除反射所需的类中的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30810180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com