gpt4 book ai didi

c# - 混淆时 MEF 和/或 Unity 有任何问题吗?

转载 作者:行者123 更新时间:2023-11-30 20:11:01 25 4
gpt4 key购买 nike

我目前在插件架构中使用 MEF。我即将混淆我的代码,我担心这是否会破坏 MEF 及其发现。我正在使用 DirectoryCatalog 来解析插件,我也计划混淆插件。一些扩展也在主程序集中运行,它们也会被混淆。

所以,我的问题是这是否是 MEF(混淆)的问题,如果是,Unity 是否也会遇到同样的问题?提前谢谢你。

最佳答案

我遇到了 Unity 和混淆的问题。在那种情况下,要由统一解决的依赖项被标记为属性上的 [ServiceDependency] 属性。 IL 中的属性只不过是 Get 和 Set 方法!通过一些元数据联系在一起。这就是构成属性(property)的东西,没有别的。出现混淆并将该属性替换为 native Get 和 Set 方法。你能看出问题所在吗?该属性已消失(由方法替换)。没有属性意味着属性上没有 [ServiceDependency] 属性意味着没有依赖注入(inject)意味着空引用意味着崩溃!

此处的解决方案是使用 [ServiceDependency] 和 [Obfuscation(Feature = "renaming", Exclude = true)](.Net Framework 的一部分)标记属性。

如果这对您很重要:混淆是使用 Dotfuscator Professional 完成的。

关于c# - 混淆时 MEF 和/或 Unity 有任何问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4337351/

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