コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="service"></param>
        /// <param name="webServiceURL"></param>
        /// <param name="behavior"></param>
        /// <param name="binding"></param>
        /// <param name="wsType"></param>
        private void AddWebService(WebServiceFactory service, string webServiceURL, SessionIdBehavior behavior, BasicHttpBinding binding, Type wsType)
        {
            // get the specific web service Url
            Uri wsUri = new Uri(PolarionUri, webServiceURL);

            // create a new web service object
            dynamic ws = Activator.CreateInstance(wsType, new Object[] { binding, new EndpointAddress(wsUri.ToString()) });

            // adding a specific client behavior programmatically
            ws.Endpoint.Behaviors.Add(behavior);
            WebServices.Add(service, ws);
        }
コード例 #2
0
        /// <summary>
        ///     Connect
        /// </summary>
        public void Connect()
        {
            //  check if the web services are already existing
            if (WebServices != null)
            {
                return;
            }

            WebServices = new Dictionary <WebServiceFactory, dynamic>();

            // instantiate the behavior class
            SessionIdBehavior behavior = new SessionIdBehavior();

            // distinguish between http:// and https://
            BasicHttpBinding binding = new BasicHttpBinding();

            if (PolarionUri.GetComponents(UriComponents.HttpRequestUrl, UriFormat.Unescaped).StartsWith(Strings.SECUREPROTOCOL))
            {
                binding.Security.Mode = BasicHttpSecurityMode.Transport; // SecurityMode.Transport;
                binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
            }

            binding.MaxBufferPoolSize                   = long.MaxValue;
            binding.MaxBufferSize                       = int.MaxValue;
            binding.MaxReceivedMessageSize              = int.MaxValue;
            binding.ReaderQuotas.MaxArrayLength         = int.MaxValue;
            binding.ReaderQuotas.MaxBytesPerRead        = int.MaxValue;
            binding.ReaderQuotas.MaxDepth               = int.MaxValue;
            binding.ReaderQuotas.MaxStringContentLength = int.MaxValue;

            AddWebService(WebServiceFactory.Builder, Strings.BUILDERURL, behavior, binding, typeof(BuilderWebServiceClient));
            AddWebService(WebServiceFactory.Project, Strings.PROJECTURL, behavior, binding, typeof(ProjectWebServiceClient));
            AddWebService(WebServiceFactory.Security, Strings.SECURITYURL, behavior, binding, typeof(SecurityWebServiceClient));
            AddWebService(WebServiceFactory.Session, Strings.SESSIONURL, behavior, binding, typeof(SessionWebServiceClient));
            //AddWebService(WebServiceFactory.TestManagement, Strings.TESTMANAGEMENTURL, behavior, binding, typeof(TestManagementWebServiceClient));
            AddWebService(WebServiceFactory.Tracker, Strings.TRACKERURL, behavior, binding, typeof(TrackerWebServiceClient));
        }