Example #1
0
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            UnifiedSecurityMode mode;
            NetMsmqSecurity     security;

            binding = null;
            if (elements.Count > 3)
            {
                return(false);
            }
            SecurityBindingElement sbe = null;
            BinaryMessageEncodingBindingElement encoding = null;
            MsmqTransportBindingElement         msmq     = null;

            foreach (BindingElement element4 in elements)
            {
                if (element4 is SecurityBindingElement)
                {
                    sbe = element4 as SecurityBindingElement;
                }
                else if (element4 is TransportBindingElement)
                {
                    msmq = element4 as MsmqTransportBindingElement;
                }
                else if (element4 is MessageEncodingBindingElement)
                {
                    encoding = element4 as BinaryMessageEncodingBindingElement;
                }
                else
                {
                    return(false);
                }
            }
            if (!IsValidTransport(msmq, out mode))
            {
                return(false);
            }
            if (encoding == null)
            {
                return(false);
            }
            if (!TryCreateSecurity(sbe, mode, out security))
            {
                return(false);
            }
            NetMsmqBinding binding2 = new NetMsmqBinding(security);

            binding2.InitializeFrom(msmq, encoding);
            if (!binding2.IsBindingElementsMatch(msmq, encoding))
            {
                return(false);
            }
            binding = binding2;
            return(true);
        }
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            binding = null;
            if (elements.Count > 3)
                return false;

            SecurityBindingElement security = null;
            BinaryMessageEncodingBindingElement encoding = null;
            MsmqTransportBindingElement transport = null;

            foreach (BindingElement element in elements)
            {
                if (element is SecurityBindingElement)
                    security = element as SecurityBindingElement;
                else if (element is TransportBindingElement)
                    transport = element as MsmqTransportBindingElement;
                else if (element is MessageEncodingBindingElement)
                    encoding = element as BinaryMessageEncodingBindingElement;
                else
                    return false;
            }

            UnifiedSecurityMode mode;
            if (!IsValidTransport(transport, out mode))
                return false;

            if (encoding == null)
                return false;

            NetMsmqSecurity netMsmqSecurity;
            if (!TryCreateSecurity(security, mode, out netMsmqSecurity))
                return false;

            NetMsmqBinding netMsmqBinding = new NetMsmqBinding(netMsmqSecurity);
            netMsmqBinding.InitializeFrom(transport, encoding);
            if (!netMsmqBinding.IsBindingElementsMatch(transport, encoding))
                return false;

            binding = netMsmqBinding;
            return true;
        }
 internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
 {
     UnifiedSecurityMode mode;
     NetMsmqSecurity security;
     binding = null;
     if (elements.Count > 3)
     {
         return false;
     }
     SecurityBindingElement sbe = null;
     BinaryMessageEncodingBindingElement encoding = null;
     MsmqTransportBindingElement msmq = null;
     foreach (BindingElement element4 in elements)
     {
         if (element4 is SecurityBindingElement)
         {
             sbe = element4 as SecurityBindingElement;
         }
         else if (element4 is TransportBindingElement)
         {
             msmq = element4 as MsmqTransportBindingElement;
         }
         else if (element4 is MessageEncodingBindingElement)
         {
             encoding = element4 as BinaryMessageEncodingBindingElement;
         }
         else
         {
             return false;
         }
     }
     if (!IsValidTransport(msmq, out mode))
     {
         return false;
     }
     if (encoding == null)
     {
         return false;
     }
     if (!TryCreateSecurity(sbe, mode, out security))
     {
         return false;
     }
     NetMsmqBinding binding2 = new NetMsmqBinding(security);
     binding2.InitializeFrom(msmq, encoding);
     if (!binding2.IsBindingElementsMatch(msmq, encoding))
     {
         return false;
     }
     binding = binding2;
     return true;
 }
Example #4
0
        internal static bool TryCreate(BindingElementCollection elements, out Binding binding)
        {
            binding = null;
            if (elements.Count > 3)
            {
                return(false);
            }

            SecurityBindingElement security = null;
            BinaryMessageEncodingBindingElement encoding  = null;
            MsmqTransportBindingElement         transport = null;

            foreach (BindingElement element in elements)
            {
                if (element is SecurityBindingElement)
                {
                    security = element as SecurityBindingElement;
                }
                else if (element is TransportBindingElement)
                {
                    transport = element as MsmqTransportBindingElement;
                }
                else if (element is MessageEncodingBindingElement)
                {
                    encoding = element as BinaryMessageEncodingBindingElement;
                }
                else
                {
                    return(false);
                }
            }

            UnifiedSecurityMode mode;

            if (!IsValidTransport(transport, out mode))
            {
                return(false);
            }

            if (encoding == null)
            {
                return(false);
            }

            NetMsmqSecurity netMsmqSecurity;

            if (!TryCreateSecurity(security, mode, out netMsmqSecurity))
            {
                return(false);
            }

            NetMsmqBinding netMsmqBinding = new NetMsmqBinding(netMsmqSecurity);

            netMsmqBinding.InitializeFrom(transport, encoding);
            if (!netMsmqBinding.IsBindingElementsMatch(transport, encoding))
            {
                return(false);
            }

            binding = netMsmqBinding;
            return(true);
        }