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; }
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); }