コード例 #1
0
        private static void ProcessParameter(IGraphBuilder builder, object parameterNode, object handlerInstance)
        {
            var subNodes = builder.GetSuccessors(parameterNode);
            Debug.Assert(subNodes != null && subNodes.Count() == 2);

            var nameNode = subNodes.First();
            Debug.Assert(builder.IsNode(nameNode));
            var nameValue = builder.GetSuccessors(nameNode).First().ToString();

            var payloadNode = subNodes.Last();
            var payloadValueNodes = builder.GetSuccessors(payloadNode);
            string payloadValue = null;
            if (payloadValueNodes.Count() == 1)
            {
                payloadValue = payloadValueNodes.First().ToString();
                Debug.Assert(builder.IsNode(payloadNode));
            }
            InvokeHandler(nameValue, payloadValue, handlerInstance);
        }