Files
linux-packaging-mono/external/aspnetwebstack/src/System.Web.WebPages.Razor/Configuration/RazorPagesSection.cs

55 lines
2.2 KiB
C#
Raw Normal View History

// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System.Configuration;
using System.Diagnostics.CodeAnalysis;
using System.Web.Configuration;
namespace System.Web.WebPages.Razor.Configuration
{
public class RazorPagesSection : ConfigurationSection
{
public static readonly string SectionName = RazorWebSectionGroup.GroupName + "/pages";
private static readonly ConfigurationProperty _pageBaseTypeProperty =
new ConfigurationProperty("pageBaseType",
typeof(string),
null,
ConfigurationPropertyOptions.IsRequired);
private static readonly ConfigurationProperty _namespacesProperty =
new ConfigurationProperty("namespaces",
typeof(NamespaceCollection),
null,
ConfigurationPropertyOptions.IsRequired);
private bool _pageBaseTypeSet = false;
private bool _namespacesSet = false;
private string _pageBaseType;
private NamespaceCollection _namespaces;
[ConfigurationProperty("pageBaseType", IsRequired = true)]
public string PageBaseType
{
get { return _pageBaseTypeSet ? _pageBaseType : (string)this[_pageBaseTypeProperty]; }
set
{
_pageBaseType = value;
_pageBaseTypeSet = true;
}
}
[ConfigurationProperty("namespaces", IsRequired = true)]
[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "Being able to set this property is extremely useful for third-parties who are testing components which interact with the Razor configuration system")]
public NamespaceCollection Namespaces
{
get { return _namespacesSet ? _namespaces : (NamespaceCollection)this[_namespacesProperty]; }
set
{
_namespaces = value;
_namespacesSet = true;
}
}
}
}