Ejemplo n.º 1
0
        public static object CreateBehavior(this BehaviorExtensionElement behaviorExtensionElement)
        {
            BindingFlags flags          = BindingFlags.Instance | BindingFlags.NonPublic;
            MethodInfo   createBehavior = typeof(BehaviorExtensionElement).GetMethod("CreateBehavior", flags);

            return(createBehavior.Invoke(behaviorExtensionElement, null));
        }
Ejemplo n.º 2
0
        private void AddBehaviors(string behaviorConfiguration, ServiceEndpoint serviceEndpoint, ServiceModelSectionGroup group)
        {
            if (string.IsNullOrEmpty(behaviorConfiguration))
            {
                return;
            }
            if (group == null)
            {
                return;
            }
            EndpointBehaviorElement endpointBehaviorElement = group.Behaviors.EndpointBehaviors[behaviorConfiguration];

            if (endpointBehaviorElement != null)
            {
                for (int i = 0; i < endpointBehaviorElement.Count; i++)
                {
                    BehaviorExtensionElement behaviorExtensionElement = endpointBehaviorElement[i];
                    object obj = behaviorExtensionElement.GetType().InvokeMember("CreateBehavior", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, behaviorExtensionElement, null);
                    if (obj != null)
                    {
                        serviceEndpoint.Behaviors.Add((IEndpointBehavior)obj);
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private static T CreateBehavior <T>(BehaviorExtensionElement behaviorElement)
        {
            MethodInfo method = behaviorElement.GetType().GetMethod("CreateBehavior", BindingFlags.Instance | BindingFlags.NonPublic);

            if (method != null)
            {
                return((T)method.Invoke(behaviorElement, null));
            }
            return(default(T));
        }
Ejemplo n.º 4
0
        public static IEndpointBehavior CreateBehavior(BehaviorExtensionElement behaviorExtension)
        {
            IEndpointBehavior endPointBehavior = (IEndpointBehavior)behaviorExtension.GetType().InvokeMember(
                "CreateBehavior",
                BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
                null,
                behaviorExtension,
                null);

            return(endPointBehavior);
        }
        /// <summary>
        /// Method ApplyMultiBehaviors
        /// </summary>
        /// <param name="serviceModelSectionGroup">ServiceModel section group.</param>
        /// <returns>true if succeeded; otherwise, false.</returns>
        private bool ApplyMultiBehaviors(ServiceModelSectionGroup serviceModelSectionGroup)
        {
            if (serviceModelSectionGroup == null)
            {
                return(false);
            }

            foreach (ServiceBehaviorElement element in serviceModelSectionGroup.Behaviors.ServiceBehaviors)
            {
                foreach (BehaviorExtensionElement behavior in element)
                {
                    BehaviorExtensionElement behaviorExtensionElement = behavior;

                    object extention = behaviorExtensionElement.GetType().InvokeMember(
                        "CreateBehavior",
                        BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
                        null,
                        behaviorExtensionElement,
                        null);

                    if (extention == null)
                    {
                        continue;
                    }

                    IServiceBehavior serviceBehavior = (IServiceBehavior)extention;

                    bool isBehaviorExist = false;

                    foreach (IServiceBehavior item in this.Description.Behaviors)
                    {
                        if (item.GetType().Name == serviceBehavior.GetType().Name)
                        {
                            isBehaviorExist = true;

                            break;
                        }
                    }

                    if (isBehaviorExist)
                    {
                        break;
                    }

                    this.Description.Behaviors.Add((IServiceBehavior)extention);
                }
            }

            return(true);
        }
Ejemplo n.º 6
0
 public static object CreateBehavior(this BehaviorExtensionElement extensionElement)
 {
     try
     {
         return(extensionElement.GetType().
                GetMethod(
                    "CreateBehavior",
                    BindingFlags.Instance |
                    BindingFlags.NonPublic).
                Invoke(extensionElement, new object[] { }));
     }
     catch (TargetInvocationException ex)
     {
         throw ex.InnerException;
     }
 }
Ejemplo n.º 7
0
 private void method_2(string string_1, ServiceEndpoint serviceEndpoint_0, ServiceModelSectionGroup serviceModelSectionGroup_0)
 {
     if (!string.IsNullOrEmpty(string_1))
     {
         EndpointBehaviorElement endpointBehaviorElement = serviceModelSectionGroup_0.Behaviors.EndpointBehaviors[string_1];
         for (int i = 0; i < endpointBehaviorElement.Count; i++)
         {
             BehaviorExtensionElement behaviorExtensionElement = endpointBehaviorElement[i];
             object obj = behaviorExtensionElement.GetType().InvokeMember("CreateBehavior", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, behaviorExtensionElement, null);
             if (obj != null)
             {
                 serviceEndpoint_0.Behaviors.Add((IEndpointBehavior)obj);
             }
         }
     }
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Adds the configured behavior to the selected endpoint
        /// </summary>
        /// <param name="behaviorConfiguration"></param>
        /// <param name="serviceEndpoint"></param>
        /// <param name="group"></param>
        private void AddBehaviors(string behaviorConfiguration, ServiceEndpoint serviceEndpoint, ServiceModelSectionGroup group)
        {
            EndpointBehaviorElement behaviorElement = group.Behaviors.EndpointBehaviors[behaviorConfiguration];

            for (int i = 0; i < behaviorElement.Count; i++)
            {
                BehaviorExtensionElement behaviorExtension = behaviorElement[i];
                object extension = behaviorExtension.GetType().InvokeMember("CreateBehavior",
                                                                            BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
                                                                            null, behaviorExtension, null);
                if (extension != null)
                {
                    serviceEndpoint.Behaviors.Add((IEndpointBehavior)extension);
                }
            }
        }
        protected internal static void AddBehaviors(string behaviorConfiguration, ServiceEndpoint serviceEndpoint, BehaviorsSection section)
        {
            if (string.IsNullOrEmpty(behaviorConfiguration))
            {
                return;
            }
            EndpointBehaviorElement behaviorElement = section.EndpointBehaviors[behaviorConfiguration];

            for (int i = 0; i < behaviorElement.Count; i++)
            {
                BehaviorExtensionElement behaviorExtension = behaviorElement[i];
                object extension = behaviorExtension.GetType().InvokeMember("CreateBehavior", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, behaviorExtension, null);
                if (extension != null)
                {
                    serviceEndpoint.Behaviors.Add((IEndpointBehavior)extension);
                }
            }
        }
Ejemplo n.º 10
0
        public static void AddBehaviors(
            string behaviorConfiguration,
            ServiceEndpoint serviceEndpoint,
            ServiceModelSectionGroup serviceModelSection)
        {
            EndpointBehaviorElement behaviorElement = serviceModelSection.Behaviors.EndpointBehaviors[behaviorConfiguration];

            for (int i = 0; i < behaviorElement.Count; i++)
            {
                BehaviorExtensionElement behaviorExtension = behaviorElement[i];

                IEndpointBehavior endPointBehavior = CreateBehavior(behaviorExtension);

                if (endPointBehavior != null)
                {
                    serviceEndpoint.Behaviors.Add(endPointBehavior);
                }
            }
        }
Ejemplo n.º 11
0
        internal static void SetBehavior <TBehavior>(ICollection <TBehavior> collection, BehaviorExtensionElement element)
        {
            var behavior = (TBehavior)methodCreateBehavior.Invoke(element, null);

            foreach (var item in collection)
            {
                if (item.GetType() == behavior.GetType())
                {
                    collection.Remove(item);
                    break;
                }
            }
            collection.Add(behavior);
        }
Ejemplo n.º 12
0
 public static object CreateBehavior(this BehaviorExtensionElement behaviorExtensionElement)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 13
0
        /// <summary>
        /// Sets the behavior.
        /// </summary>
        /// <typeparam name="TBehavior">The type of the behavior.</typeparam>
        /// <param name="collection">The collection.</param>
        /// <param name="element">The element.</param>
        protected static void SetBehavior <TBehavior>(ICollection <TBehavior> collection, BehaviorExtensionElement element)
        {
            if (collection == null)
            {
                throw new ArgumentNullException("collection");
            }
            if (element == null)
            {
                throw new ArgumentNullException("element");
            }

            var behavior = (TBehavior)_methodCreateBehavior.Invoke(element, null);

            foreach (var item in collection)
            {
                if (item.GetType() == behavior.GetType())
                {
                    collection.Remove(item);
                    break;
                }
            }

            collection.Add(behavior);
        }
Ejemplo n.º 14
0
 internal static IEndpointBehavior CreateEndpointBehavior(this BehaviorExtensionElement element)
 {
     return((IEndpointBehavior)_createBehaviorMethod.Invoke(element, null));
 }