protected X3XmlDescriptionWrapper GetWebServiceDescription()
        {
            var getDescriptionResponse = WebService.getDescription(X3WebService.Context, PublicIdentifierValue);

            var descriptionXml = new XmlDocument();
            descriptionXml.LoadXml(getDescriptionResponse.resultXml);

            var description = new X3XmlDescriptionWrapper(descriptionXml);
            return description;
        }
        private void GenerateOutputs()
        {
            var binding = new BasicHttpBinding();
            binding.MaxReceivedMessageSize = 999999999;

            var proxy = new CAdxWebServiceXmlCCClient(binding, new EndpointAddress("http://"+Ip+":28880/adxwsvc/services/CAdxWebServiceXmlCC"));
            var parameters = new List<CAdxParamKeyValue>();
            var response = proxy.getDescription(CallContext, PublicIdentifier);

            var descriptionRawXml = response.resultXml;
            var descriptionXml = new XmlDocument();
            descriptionXml.LoadXml(descriptionRawXml);

            var description = new X3XmlDescriptionWrapper(descriptionXml);

            IDTSOutput100 output;
            bool hasOutputCollection = ComponentMetaData.OutputCollection.Count > 0;
            if (!hasOutputCollection)
            {
                output = ComponentMetaData.OutputCollection.New();
                output.Name = "Output";
            }
            else
                output = ComponentMetaData.OutputCollection[0];

            var outputColumns = output.OutputColumnCollection;
            var outputColumnsCasted = outputColumns.Cast<IDTSOutputColumn100>();
            /*
            foreach (var listField in description.ListDescription)
            {
                IDTSOutputColumn100 newColumn;
                if (outputColumnsCasted.Any(c => c.Name == listField.Name))
                    newColumn = outputColumnsCasted.Single(c => c.Name == listField.Name);
                else
                    newColumn = outputColumns.New();

                newColumn.Name = listField.Name;
                switch (listField.DataType)
                {
                    case "Char":
                        newColumn.SetDataTypeProperties(DataType.DT_WSTR, (int)listField.Length, 0, 0, 0);
                        break;
                    default:
                        throw new NotImplementedException();
                }
            }*/
        }