示例#1
0
        internal void Evaluate(FlowSourceObjectBase source, bool checkBreakPoints)
        {
            if (evaluating || debugController == null || lastEvaluateSource == source || source == null || nextOperation == OperationType.Abort)
            {
                return;
            }
            lastEvaluateSource = source;
            if (nextOperation != OperationType.StepIn && checkBreakPoints)
            {
                lock (breakPointLock)
                {
                    if (!breakPoints.Contains(source.Id))
                    {
                        return;
                    }
                }
            }

            evaluating = true;
#if DEBUG
            Console.WriteLine("Evaluate: {0}", source.GetType().FullName);
#endif
            var serializedText = SerializeSource(source);
#if DEBUG
            Console.WriteLine(serializedText);
#endif
            debugController.OnSourceChanged(serializedText, this);
            nextOperation = debugController.WaitOperation(this);
            evaluating    = false;
        }
示例#2
0
        private static bool CheckAttribute(FlowSourceObjectBase source, MemberInfo memberInfo, out string toolTipText, out string toolTipTextKey, out string[] replacedNames)
        {
            toolTipText    = "";
            toolTipTextKey = "";
            Object[] objects  = Attribute.GetCustomAttributes(memberInfo, true);
            var      replaced = new HashSet <string>();

#if DEBUG
            bool attributeFound = false;
#endif
            for (int i = 0; i < objects.Length; i++)
            {
                if (objects[i] is IgnoreAttribute)
                {
                    replacedNames = replaced.ToArray();
                    return(false);
                }
                else if (objects[i] is IToolTipText)
                {
                    toolTipText    = (objects[i] as IToolTipText).Text;
                    toolTipTextKey = (objects[i] as IToolTipText).TextKey;
#if DEBUG
                    attributeFound = true;
                    if (String.IsNullOrEmpty(toolTipText))
                    {
                        Console.WriteLine("[{0}]'s [{1}]'s summary is null or empty", source.GetType(), memberInfo);
                    }
#endif
                }
                else if (objects[i] is ReplacedAttribute)
                {
                    var name = (objects[i] as ReplacedAttribute).Name;
                    replaced.Add(name);
                }
            }

#if DEBUG
            if (!attributeFound)
            {
                Console.WriteLine("[{0}]'s [{1}]'s summary is not implemented", source.GetType(), memberInfo);
            }
#endif
            replacedNames = replaced.ToArray();
            return(true);
        }