|
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System.Configuration;
using System.Runtime;
using System.Security;
public sealed partial class ServiceElement : ConfigurationElement, IConfigurationContextProviderInternal
{
[Fx.Tag.SecurityNote(Critical = "Stores information used in a security decision.")]
[SecurityCritical]
EvaluationContextHelper contextHelper;
public ServiceElement() : base() { }
public ServiceElement(string serviceName)
: this()
{
this.Name = serviceName;
}
[ConfigurationProperty(ConfigurationStrings.BehaviorConfiguration, DefaultValue = "")]
[StringValidator(MinLength = 0)]
public string BehaviorConfiguration
{
get { return (string)base[ConfigurationStrings.BehaviorConfiguration]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStrings.BehaviorConfiguration] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.DefaultCollectionName, Options = ConfigurationPropertyOptions.IsDefaultCollection)]
public ServiceEndpointElementCollection Endpoints
{
get { return (ServiceEndpointElementCollection)base[ConfigurationStrings.DefaultCollectionName]; }
}
[ConfigurationProperty(ConfigurationStrings.Host, Options = ConfigurationPropertyOptions.None)]
public HostElement Host
{
get { return (HostElement)base[ConfigurationStrings.Host]; }
}
[ConfigurationProperty(ConfigurationStrings.Name, Options = ConfigurationPropertyOptions.IsKey | ConfigurationPropertyOptions.IsRequired)]
[StringValidator(MinLength = 1)]
public string Name
{
get { return (string)base[ConfigurationStrings.Name]; }
set
{
if (String.IsNullOrEmpty(value))
{
value = String.Empty;
}
base[ConfigurationStrings.Name] = value;
}
}
[Fx.Tag.SecurityNote(Critical = "Accesses critical field contextHelper.")]
[SecurityCritical]
protected override void Reset(ConfigurationElement parentElement)
{
this.contextHelper.OnReset(parentElement);
base.Reset(parentElement);
}
ContextInformation IConfigurationContextProviderInternal.GetEvaluationContext()
{
return this.EvaluationContext;
}
[Fx.Tag.SecurityNote(Critical = "Accesses critical field contextHelper.",
Miscellaneous = "RequiresReview -- the return value will be used for a security decision -- see comment in interface definition")]
[SecurityCritical]
ContextInformation IConfigurationContextProviderInternal.GetOriginalEvaluationContext()
{
return this.contextHelper.GetOriginalContext(this);
}
}
}
|