1 //-----------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //-----------------------------------------------------------------------------
5 namespace System.ServiceModel.Configuration
8 using System.ServiceModel;
9 using System.Collections.Generic;
10 using System.ComponentModel;
11 using System.Configuration;
12 using System.Globalization;
15 public partial class EndpointBehaviorElement : NamedServiceModelExtensionCollectionElement<BehaviorExtensionElement>
17 public EndpointBehaviorElement()
22 public EndpointBehaviorElement(string name)
23 : base(ConfigurationStrings.BehaviorExtensions, name)
27 // Verify that the behavior being added implements IEndpointBehavior
28 public override void Add(BehaviorExtensionElement element)
30 // If element is null, let base.Add() throw for consistency reasons
33 if (element is ClearBehaviorElement || element is RemoveBehaviorElement)
35 base.AddItem(element);
38 if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
40 #pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
41 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidEndpointBehaviorType,
42 element.ConfigurationElementName,
44 element.ElementInformation.Source,
45 element.ElementInformation.LineNumber));
46 #pragma warning restore
53 // Verify that the behavior being added implements IEndpointBehavior
54 public override bool CanAdd(BehaviorExtensionElement element)
56 // If element is null, let base.CanAdd() throw for consistency reasons
59 if (element is ClearBehaviorElement || element is RemoveBehaviorElement)
63 if (!typeof(System.ServiceModel.Description.IEndpointBehavior).IsAssignableFrom(element.BehaviorType))
65 #pragma warning disable 56506 //Microsoft; element.ElementInformation is guaranteed to be non-null(System.Configuration)
66 throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigInvalidEndpointBehaviorType,
67 element.ConfigurationElementName,
69 element.ElementInformation.Source,
70 element.ElementInformation.LineNumber));
71 #pragma warning restore
75 return base.CanAdd(element);