Проблема литья после запутывания с Dotfuscator - PullRequest
0 голосов
/ 01 марта 2010

Я пытаюсь запутать какое-то приложение VB.NET 2003.

Полученные сборки запутываются и «запускаются» с некоторыми ошибками.

Я убрал все потенциальные проблемы с отражением, но не могу прочитать выбранное значение в выпадающем списке.

Я загружаю Combobox, используя их свойства источника данных, используя коллекцию "VTPair" (созданный мной класс с двумя свойствами: одно для строкового типа, а другое для типа объекта для хранения значения)

Этот дескриптор комбинированного списка, такой как "Male | M" или "Female | F".

При попытке увидеть, что выбрано, я использую if mycombo1.SelectedValue = "M" then

Этот код после обфускации выдает мне исключение, которое не может привести тип "XX" к строке "M".

Итак, я изменил код на что-то более правильное, явно приведя выбранное значение к String:

if ctype(mycombo1.SelectedValue,string) = "M" then

Но ошибка та же.

Отмените мой исходный код, свойство SelectedValue имеет тип «Объект», но это строка.

Я попытался использовать свойство ComboBox.SelectedItem, которое также является объектом, но на этот раз то, что внутри, имеет тип "VTPair" (мой собственный класс), а затем пытался получить доступ к свойству "Значение" (которое имеет тип Object) и попытка привести к строке снова не удалась.

У кого-нибудь есть идея "перевести" этот кусок кода, чтобы он работал нормально после Dotfucate?

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 марта 2010

Из MSDN:

Свойство ListControl.SelectedValue: Получает или задает значение свойства элемента, указанного свойством ValueMember.

Таким образом, любое свойство NAME, установленное для свойства ValueMember, будет использоваться при использовании свойства SelectedValue. Поэтому вам может потребоваться исключить из запутывания свойство, которое вы указываете через свойство ComboBox.ValueMember.

0 голосов
/ 01 марта 2010

Не уверен в синтаксисе VB, но в C # я думаю, вы хотели бы что-то, где правая часть - typeof (MyType). Таким образом, тип будет скрыт, чтобы соответствовать переименованному типу.

...