Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Как компилировать VS 2010 как blend


Автор: DenWPF 30.5.2011, 12:16
Вот когда я запускаю через blend, и в определеном месте происходит ошибка, то появляется ошибка прямо в браузере.
Если через VS 2010 то ошибка не выдается, как компилировать что бы была ошибка на экране при её появлении?

Автор: -Mikle- 30.5.2011, 18:22
Это не зависит от компиляции. Среди параметров силверлайт-хоста (в самих тегах HTML) указывается джаваскрипт-обработчик ошибок. Именно он формирует и выдает текст ошибки через alert(...). Скорее всего у тебя нет этого обработчика. Бленд, возможно, не использует твою хтмл-страницу и генерирует свою (студия тоже это умеет). В генерируемой стрнице этот обработчик есть.

Автор: DenWPF 30.5.2011, 21:14
так как его включить? 

Автор: Rohoss 31.5.2011, 00:18
Цитата(DenWPF @  30.5.2011,  21:14 Найти цитируемый пост)
так как его включить?

Наверное никак. Всё таки бленд предназначит для дизайнеров, а им эта ошибка ни к чему хотя могу ошибаться

Автор: -Mikle- 31.5.2011, 06:56
В странице-хосте есть такое объявление:
Код

        <object id="silverlightContent" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
            <param name="source" value="ClientBin/....................xap" />
            <param name="onError" value="onSilverlightError" />
            <param name="background" value="white" />
            <param name="minRuntimeVersion" value="4.0.50401.0" />
            <param name="autoUpgrade" value="true" />
            <param name="splashscreensource" value="preloader.xaml" />
            <param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />
            <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration: none">
                <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight"
                    style="border-style: none" />
            </a>
        </object>
Тут параметер onError задает как раз таки эту функцию джаваскрипт.

Вот ее стандартный текст:
Код

        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
                appSource = sender.getHost().Source;
            }

            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {
                return;
            }

            var errMsg = "Unhandled Error in Silverlight Application " + appSource + "\n";

            errMsg += "Code: " + iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " + args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }


В последней строке, можешь использовать alert для вывода сообщения. Можешь оба, сначала показать, а потом кинуть ошибку чтоб браузер отреагировал.

Автор: DenWPF 31.5.2011, 08:26
оо спасибо буду смотреть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)