使用 ConfuserEx 组合框显示 id 而不是值作为下拉列表

On using ConfuserEx combobox shows id's instead of values as dropdowns

我使用 Confuserex 混淆了我使用 .net 4.5 的代码。 Post 编译一切似乎都正常,除了组合框的行为(在我在项目中拥有的所有 winforms 中)。组合框现在显示 id 而不是值作为下拉列表。 (而这些 运行 在调试模式下 visual studio 以及发布模式下的构建绝对没问题)。

在 confuserex 中,我尝试将预设设置为“积极”、“最大”...但无论我使用哪种预设,都会出现同样的问题。

这里不放任何代码,因为代码本身没有问题。这很可能是 Confuserex 中的一个问题。

这是一个已知问题吗?是否存在解决方案?如果需要任何进一步的详细信息来提供帮助,请告诉我。

没有办法给你一个单一的答案,但也许我可以引导你朝着正确的方向前进:

最近在 Winforms post-build 事件中实现 ConfuserEx,我发现一些第三方控件没有正确显示数据,或者根本没有显示数据。像你一样,我将预设从激进更改为正常,但无济于事。然后我排除了一些绑定数据的混淆方法。它缓解了某些情况下的问题,特别是在数据网格视图和列表框中。在这些控件中,我收到了一些奇怪的故障,例如额外的列、呈现为空白的单元格(底层对象中存在数据)等。

对于带有混淆的第三方控件,所有赌注都被取消了——你永远不会知道他们是否会玩球。有时您也会在使用 .Net 控件时遇到这种情况。混淆和反射也不相容。也许检查您的组合框数据绑定技术,并从填充数据的方法中解除混淆,如果没有别的。当然,前提是您可以忍受这种暴露的方法。这是一种方法:

    [System.Reflection.Obfuscation(Exclude = true)]
    public void MethodYouDontWantToObfuscate()
    {
      //Your method code
    }

直到刚才我在使用 WPF 时遇到了类似的问题。

我们的组合框项目在它们自己的 class 中。为了解决我添加的问题

[System.Reflection.Obfuscation(Exclude = true)]

在 class 声明前(如 所建议),现在一切正常。