File: System\Xaml\Hosting\Configuration\XamlHostingConfiguration.cs
Project: ndp\cdf\src\NetFx40\System.Xaml.Hosting\System.Xaml.Hosting.csproj (System.Xaml.Hosting)
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------
 
namespace System.Xaml.Hosting.Configuration
{
    using System;
    using System.Configuration;
    using System.Web.Configuration;
    using System.Runtime;
    using System.Security;
 
    static class XamlHostingConfiguration
    {
        internal const string CollectionName = "";
        internal const string HttpHandlerType = "httpHandlerType";
        internal const string XamlHostingConfigGroup = @"system.xaml.hosting";
        internal const string XamlHostingSection = XamlHostingConfigGroup + "/httpHandlers";
        internal const string XamlRootElementType = "xamlRootElementType";
 
        internal static bool TryGetHttpHandlerType(string virtualPath, Type hostedXamlType, out Type httpHandlerType)
        {
            XamlHostingSection section = LoadXamlHostingSection(virtualPath);
            if (null == section) 
            { 
                ConfigurationErrorsException configException = new ConfigurationErrorsException(SR.ConfigSectionNotFound);                 
                throw FxTrace.Exception.AsError(configException); 
            }
            return section.Handlers.TryGetHttpHandlerType(hostedXamlType, out httpHandlerType);
        }
 
        static XamlHostingSection LoadXamlHostingSection(string virtualPath)
        {
            //WebConfigurationManager returns the same section object for a given virtual directory (not virtual path).
            return (XamlHostingSection)WebConfigurationManager.GetSection(XamlHostingConfiguration.XamlHostingSection, virtualPath);
        }
    }
}