MobileControlBuilder.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / MobileControlBuilder.cs / 1305376 / MobileControlBuilder.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System; 
using System.Collections; 
using System.ComponentModel;
using System.ComponentModel.Design; 
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.Web; 
using System.Web.UI;
using System.Web.UI.Design.WebControls; 
using System.Web.UI.WebControls; 
using System.Security.Permissions;
 
namespace System.Web.UI.MobileControls
{
    /*
     * Control builder for mobile controls. 
     *
     * Copyright (c) 2000 Microsoft Corporation 
     */ 
    /// 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
    public class MobileControlBuilder : ControlBuilder
    { 
        /// 
        public override bool AllowWhitespaceLiterals() 
        { 
            return false;
        } 

        /// 
        public override Type GetChildControlType(String tagName, IDictionary attributes)
        { 
            Type type;
 
            if (String.Compare(tagName, typeof(DeviceSpecific).Name, StringComparison.OrdinalIgnoreCase) == 0) 
            {
                type = typeof(DeviceSpecific); 
            }
            else
            {
                type = base.GetChildControlType(tagName, attributes); 
                //if (type == null)
                //{ 
                //    type = Parser.RootBuilder.GetChildControlType(tagName, attributes); 
                //}
            } 

            //  enforce valid control nesting behaviour

            if (typeof(Form).IsAssignableFrom(type)) 
            {
                throw new Exception( 
                    SR.GetString(SR.MobileControlBuilder_ControlMustBeTopLevelOfPage, 
                                 "Form"));
            } 

            if (typeof(StyleSheet).IsAssignableFrom(type))
            {
                throw new Exception( 
                    SR.GetString(SR.MobileControlBuilder_ControlMustBeTopLevelOfPage,
                                 "StyleSheet")); 
            } 

            if (typeof(Style).IsAssignableFrom(type) && !typeof(StyleSheet).IsAssignableFrom(ControlType)) 
            {
                throw new Exception(
                    SR.GetString(SR.MobileControlBuilder_StyleMustBeInStyleSheet));
            } 

            return type; 
        } 

    } 

}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System; 
using System.Collections; 
using System.ComponentModel;
using System.ComponentModel.Design; 
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.Web; 
using System.Web.UI;
using System.Web.UI.Design.WebControls; 
using System.Web.UI.WebControls; 
using System.Security.Permissions;
 
namespace System.Web.UI.MobileControls
{
    /*
     * Control builder for mobile controls. 
     *
     * Copyright (c) 2000 Microsoft Corporation 
     */ 
    /// 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
    public class MobileControlBuilder : ControlBuilder
    { 
        /// 
        public override bool AllowWhitespaceLiterals() 
        { 
            return false;
        } 

        /// 
        public override Type GetChildControlType(String tagName, IDictionary attributes)
        { 
            Type type;
 
            if (String.Compare(tagName, typeof(DeviceSpecific).Name, StringComparison.OrdinalIgnoreCase) == 0) 
            {
                type = typeof(DeviceSpecific); 
            }
            else
            {
                type = base.GetChildControlType(tagName, attributes); 
                //if (type == null)
                //{ 
                //    type = Parser.RootBuilder.GetChildControlType(tagName, attributes); 
                //}
            } 

            //  enforce valid control nesting behaviour

            if (typeof(Form).IsAssignableFrom(type)) 
            {
                throw new Exception( 
                    SR.GetString(SR.MobileControlBuilder_ControlMustBeTopLevelOfPage, 
                                 "Form"));
            } 

            if (typeof(StyleSheet).IsAssignableFrom(type))
            {
                throw new Exception( 
                    SR.GetString(SR.MobileControlBuilder_ControlMustBeTopLevelOfPage,
                                 "StyleSheet")); 
            } 

            if (typeof(Style).IsAssignableFrom(type) && !typeof(StyleSheet).IsAssignableFrom(ControlType)) 
            {
                throw new Exception(
                    SR.GetString(SR.MobileControlBuilder_StyleMustBeInStyleSheet));
            } 

            return type; 
        } 

    } 

}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK