Не понимаю исключения, не могу конвертировать в читаемый текст - PullRequest
0 голосов
/ 27 июня 2010

У меня есть хеш-таблица, в которой хранятся IP-адреса в виде строк для ключа и объекта моего создания в соответствующем значении.

Я получаю исключение на foreach (DictionaryEntry info in MasterHash.Keys).Точнее говоря, это происходит, когда отладчик получает DictionaryEntry.Я пытался спровоцировать сообщение из моего оператора try catch, но компилятору не нравится, когда я пытаюсь привести e к .ToString или .Message.

private void UpdateMap(Hashtable masterHash)
{
    try
    {
        foreach (DictionaryEntry info in masterHash.Keys)
        {
            AxShockwaveFlashObjects.AxShockwaveFlash axFlash = wfh.Child as AxShockwaveFlashObjects.AxShockwaveFlash;
            IPInstance foo = (IPInstance)info.Value;

            axFlash.CallFunction(foo.GetMarkerCall().ToString(SaveOptions.DisableFormatting));
        }
    }
    catch (Exception e)
    {
        Console.WriteLine(e.ToString());
    }
}

Ответы [ 2 ]

1 голос
/ 27 июня 2010

Это может быть недопустимое исключение приведения. masterHash.Keys - это не DictionaryEntry. Ключи должны быть строками (ваша строка IP).

EDIT:

ICollection MyKeys = MyTable.Keys;

foreach (object Key in MyKeys)
{
    Console.WriteLine(Key.ToString());
}
0 голосов
/ 27 июня 2010

Я не знаю, почему вы не можете получить значения пойманного исключения.Тем не менее, вы сказали, что

хранит IP-адреса в виде строк для ключа

, но вместо этого вы циклически просматриваете ключи, но ожидаете DictionaryEntry.делать:

foreach(String s in masterHash.Keys)

или что-то в этом роде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...