private XmlNodeList SelectNodes()
        {
            XmlNamespaceManager nsMgr = NamespaceManager;
            XmlNodeList         nodes = null;

            try
            {
                if (nsMgr != null)
                {
                    nodes = ContextNode.SelectNodes(XPath, nsMgr);
                }
                else
                {
                    nodes = ContextNode.SelectNodes(XPath);
                }
            }
            catch (XPathException xe)
            {
                Status = BindingStatusInternal.PathError;
                if (TraceData.IsEnabled)
                {
                    TraceData.TraceAndNotify(TraceEventType.Error, TraceData.CannotGetXmlNodeCollection, ParentBindingExpression,
                                             traceParameters: new object[] { (ContextNode != null) ? ContextNode.Name : null, XPath, ParentBindingExpression, xe },
                                             eventParameters: new object[] { xe });
                }
            }

            if (TraceData.IsExtendedTraceEnabled(ParentBindingExpression, TraceDataLevel.GetValue))
            {
                TraceData.TraceAndNotifyWithNoParameters(TraceEventType.Warning,
                                                         TraceData.SelectNodes(
                                                             TraceData.Identify(ParentBindingExpression),
                                                             IdentifyNode(ContextNode),
                                                             TraceData.Identify(XPath),
                                                             IdentifyNodeList(nodes)),
                                                         ParentBindingExpression);
            }

            return(nodes);
        }
Exemplo n.º 2
0
        public RootStreamDirectory(PipelineContext ctx, XmlNode node)
            : base(ctx, node)
        {
            children = new List <StreamDirectory>();
            StreamDirectory x = createFromNode(ctx, ContextNode, ContextNode, false);

            if (x != null)
            {
                children.Add(x);
            }
            else
            {
                XmlNodeList nodes = ContextNode.SelectNodes("provider");
                for (int i = 0; i < nodes.Count; i++)
                {
                    children.Add(createFromNode(ctx, (XmlElement)nodes[i], ContextNode, true));
                }
            }

            if (children.Count == 0)
            {
                throw new BMNodeException(node, "No providers found. No <provider> child is found and no url/file/root attributes are found.");
            }
        }