File: UI\ErrorFormatterPage.cs
Project: ndp\fx\src\xsp\system\Web\System.Web.csproj (System.Web)
//------------------------------------------------------------------------------
// <copyright file="ErrorFormatterPage.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
 
/*
 * This is a page class that is used for adaptive error formatting for mobile
 * devices.
 *
 * NOTE: We explicitly override the state management methods because if the
 *       normal page class is used, an exception is thrown for mobile devices.
 *       For example, WmlPageAdapter uses SessionPageStatePersister
 *       for persisting view state.  SessionPageStatePersister requires
 *       Context.Session to be available.  Otherwise, it would throw in the
 *       constructor.  However, when an error occurred, Context.Session is
 *       removed by SessionStateModule before the error is being formatted and
 *       rendered.  Hence the methods are overridden below and ignored to avoid
 *       the exception since there is no need to persist any view state for the
 *       adaptive error page which is created dynamically during error handling.
 *
 * Copyright (c) 2003 Microsoft Corporation
 */
 
namespace System.Web.UI {
    using System.Diagnostics.CodeAnalysis;
 
    [SuppressMessage("Microsoft.MSInternal", "CA910:AlwaysSetViewStateUserKeyToUniqueValue",
        Justification = "This page does not allow access to sensitive information.")]
    internal sealed class ErrorFormatterPage : Page {
        protected internal override void SavePageStateToPersistenceMedium(Object viewState) {
            // Override and ignore. No need to save view state for this page.
        }
 
        protected internal override Object LoadPageStateFromPersistenceMedium() {
            // Override and ignore. No view state to load for this page.
            return null;
        }
    }
}