我试图混淆一些 VB.NET 2003 应用程序。
生成的程序集被混淆并“运行”并出现一些错误。
我清除了所有潜在的反射问题,但我无法读取组合框的选定值。
我使用他们的数据源属性加载组合框,使用“VTPair”的集合(我创建的具有2个属性的类:一个字符串类型和另一个对象类型来存储值)
此组合框可处理“男性 | M”或“女性 | F”等配对。
当试图查看选择了什么时,我使用 if mycombo1.SelectedValue = "M" then
这段代码经过混淆处理后,会抛出一个异常,无法将类型“XX”转换为字符串“M”。
因此,我将代码更改为更正确的代码,将所选值显式转换为字符串:
if ctype(mycombo1.SelectedValue,string) = "M" then
但错误是一样的。
调试我的原始代码,SelectedValue 属性的类型为“Object”,但它是一个字符串。
我尝试使用ComboBox.SelectedItem
也是一个对象的属性,但这次里面的类型是“VTPair”(我自己的类),然后尝试访问它的“Value”属性(它是 Object 类型)并尝试转换为字符串再次失败。
有没有人有想法在 Dotfucate 之后“翻译”这段代码以使其正常工作?
谢谢!