Pergunta

Estou tentando ofuscar algum aplicativo VB.NET 2003.

Os montagens resultantes são ofuscados e "executados" com alguns erros.

Limpei todos os problemas de reflexão em potencial, mas não estou capaz de ler o valor selecionado de um ComboBox.

Carrego o ComboBox usando suas propriedades de fonte de dados, usando uma coleção de "vtpair" (uma classe criada por mim com 2 propriedades: um do tipo de string e outro do tipo de objeto para armazenar o valor)

Este alça de combinação combax como "masculino | m" ou "fêmea | f".

Ao tentar ver o que é selecionado, eu uso if mycombo1.SelectedValue = "M" then

Esse código, após a ofuscação, me lança uma exceção que não pode lançar o tipo "xx" para string "m".

Então, mudei o código para algo mais correto, lançando explicitamente o valor selecionado para a string:

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

Mas o erro é o mesmo.

Debugin meu código original, a propriedade SelectedValue é do tipo "objeto", mas é uma string.

Eu tentei usar o ComboBox.SelectedItem Propriedade que também é um objeto, mas desta vez o que está dentro é do tipo "VTPAIR" (minha própria classe) e, em seguida, tenta acessar sua propriedade "Value" (que é do objeto de tipo) e tentar lançar para a string falha novamente.

Alguém tem uma idéia de "traduzir" esse código de código para funcionar bem depois de dotfucate?

Obrigado!

Foi útil?

Solução

De msdn:

ListControl.SelectedValue Propriedade: obtém ou define o valor da propriedade Membro especificada pela propriedade Valuember.

Portanto, qualquer nome de propriedade que você definir para a propriedade ValuEmember será usado quando você usar a propriedade SelectedValue. Portanto, você pode precisar excluir da ofuscação, a propriedade que você especificar por meio da propriedade ComboBox.ValuEmember.

Outras dicas

Não tenho certeza da sintaxe do VB, mas em C# acho que você gostaria de algo onde o lado direito é o tipo de (MyType). Dessa forma, o tipo será ofuscado para corresponder ao tipo renomeado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top