GetCustomAttributes 方法 (System.Reflection.Module) returns 如果使用 .NET Native 编译的应用程序则无

GetCustomAttributes method (System.Reflection.Module) returns nothing if Application compiled with .NET Native

我有使用 System.Reflection.Module 类型的 UWP 代码。当应用程序在 DEBUG 模式下编译时一切正常,我可以获得模块的自定义属性。但是当我切换到 RELEASE 模式并使用 .NET Native 编译应用程序时,所有这些属性都消失了。

请检查这些链接:

Reflection and .NET Native

NET Native Deep Dive: Help! I Hit a MissingMetadataException

您可能可以通过更新 .rd.xml(运行时指令配置文件)来解决此问题,如前一篇文章所述。

并提供信息:

Runtime Directives (rd.xml) Configuration File Reference

在您的应用程序 运行 通过 .Net Native 工具链 (ilc.exe) 之后,您会注意到您的应用程序二进制文件并不像您天真地期望的那样出现。这是因为您的所有 .Net 代码(包括您的应用程序所需的 .Net Framework 的一部分)都已折叠到一个二进制 .dll 中。我们这样做是因为当编译器可以查看程序的整个状态时,许多优化步骤会工作得更好。它还可以加快您的启动时间,因为在磁盘上查找一堆不同的文件不在热路径上。

考虑到以上所有情况,有必要为程序集属性制定一个策略。最后,消除支持比想出一种使相互冲突的事物很好地融合在一起的方法要容易得多。

如果您的场景只能通过这些属性实现,我们很乐意了解更多。