C# печатают делегата

Удостоверьтесь, что Вы увеличиваете тайм-аут в корректном месте. Строки, которые Вы отправили:

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

Это ожидание состоит в том, чтобы страница загрузилась, который возвращается После щелчка. Но проблема, которую Вы описываете, состоит в том, что это перестало работать при попытке сделать щелчок. Так, удостоверьтесь, что увеличили ожидание Перед этим.

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);

// do something, then navigate to a different page 
// (window focus is never changed in-between)
// after the last click in these steps:
selenium.waitForPageToLoad(60000);
// anything else that happened after that

selenium.click("link=mylink");
selenium.waitForPageToLoad(60000);
5
задан Toto 15 October 2009 в 13:31
поделиться

3 ответа

Я не верю, что есть простой способ добиться этого. Рефлектор или другой декомпилятор может показать вам исходный код вашей программы. Насколько мне известно, PDB отображает коды операций только на строки в исходном коде программы. Он не включает источник.

Я использовал класс StackTrace вместе с PDB и источником, чтобы иметь возможность найти источник исключения.

0
ответ дан 14 December 2019 в 04:42
поделиться

Вы можете распечатать IL, вот и все. Вероятно, в .NET Reflector есть несколько повторно используемых компонентов, которые вы могли бы использовать для преобразования IL обратно в C # или VB.NET.

Файлы PDB содержат номера строк, закрытые классы / структуры / методы, имена переменных. Если у вас есть исходный исходный код C #, вы можете попробовать получить код оттуда, сопоставив номера строк в файлах PDB.

4
ответ дан 14 December 2019 в 04:42
поделиться

Note that there are some cases where you can do something like this with lambdas, by compiling them to an Expression tree rather than a delegate (which is cheating, but may be enough to help):

    Expression<Func<char, int, string>> func
        = (c, i) => new string(c, i);
    Console.WriteLine(func); // writes: (c, i) => new String(c, i)
    var del = func.Compile();
    string s = del('a', 5);
    Console.WriteLine(s); // writes: aaaaa

Note that .NET 4.0 expression trees can encapsulate the statement bodies as per the original question (discussed at the end of this article) - but the C# compiler doesn't support compiling C# code to such expressions (you need to do it the hard way).

4
ответ дан 14 December 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: