1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
5 namespace System.ServiceModel.Configuration
8 using System.Configuration;
11 public partial class CommonEndpointBehaviorElement : ServiceModelExtensionCollectionElement<BehaviorExtensionElement>
13 public CommonEndpointBehaviorElement()
14 : base(ConfigurationStrings.BehaviorExtensions)
18 // Verify that the behavior being added implements IEndpointBehavior
19 public override void Add(BehaviorExtensionElement element)
21 // If element is null, let base.Add() throw for consistency reasons
24 if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
26 #pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
27 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonEndpointBehaviorType,
28 element.ConfigurationElementName,
29 typeof(System.ServiceModel.Description.IEndpointBehavior).FullName),
30 element.ElementInformation.Source,
31 element.ElementInformation.LineNumber));
32 #pragma warning restore
39 // Verify that the behavior being added implements IEndpointBehavior
40 public override bool CanAdd(BehaviorExtensionElement element)
42 // If element is null, let base.CanAdd() throw for consistency reasons
45 if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
47 #pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
48 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidCommonEndpointBehaviorType,
49 element.ConfigurationElementName,
50 typeof(System.ServiceModel.Description.IEndpointBehavior).FullName),
51 element.ElementInformation.Source,
52 element.ElementInformation.LineNumber));
53 #pragma warning restore
57 return base.CanAdd(element);