protected virtual void InitProperties(ISourceBlock <T> block, IBlockInitializer propertySetter) { var buffer = block as BufferBlock <T>; Func <IEnumerable <string> > outputQueueFactory = () => from item in this.OutputQueue() select item.ToString(); propertySetter.SetOutputQueueFactory(outputQueueFactory); FieldInfo fieldSource = block.GetType().GetField("m_source", ReflectBlockExtensions.DEFAULT_FLAGS); object source = fieldSource.GetValue(block); PropertyInfo prop = _debugInfo.GetType().GetProperty("DataflowBlockOptions", ReflectBlockExtensions.DEFAULT_FLAGS); var options = (DataflowBlockOptions)prop.GetValue(_debugInfo); propertySetter.SetBlockOptions(options); propertySetter.SetIsLinked(IsLinked); SetNextMessageIdProperty(source, propertySetter); SetTaskForOutputProcessing(propertySetter); propertySetter.AddProperty("Is Completed", () => ReflectBlockExtensions.GetIsCompleted(_debugInfo), 61, Colors.WhiteSmoke); propertySetter.AddProperty("Declined Permanently", () => ReflectBlockExtensions.GetIsDecliningPermanently(_debugInfo), 62, Colors.WhiteSmoke); }
internal ReflectTransformBlock(TransformBlock <TIn, TOut> block, IBlockInitializer propertySetter) : base(block, propertySetter) { if (block == null) { return; } #region targetCoreField FieldInfo targetCoreField = block.GetType().GetField("m_target", ReflectBlockExtensions.DEFAULT_FLAGS); object targetCore = targetCoreField.GetValue(block); MethodInfo getTargetDebuggingInformationMethod = targetCore.GetType().GetMethod("GetDebuggingInformation", ReflectBlockExtensions.DEFAULT_FLAGS); _targetDebugInfo = getTargetDebuggingInformationMethod.Invoke(targetCore, new object[0]); #endregion // targetCoreField //propertySetter.AddProperty("Input Count", () => block.InputCount, 3, Colors.White); //propertySetter.AddProperty("Output Count", () => block.OutputCount, 4, Colors.White); propertySetter.SetInputQueueFactory(() => ReflectBlockExtensions.GetInputQueue(_targetDebugInfo)); //propertySetter.SetOutputQueueFactory(() => ReflectBlockExtensions.GetOutputQueue(_sourceDebugInfo)); propertySetter.SetPostponedMessagesFactory(() => ReflectBlockExtensions.GetProsponedQueue(_targetDebugInfo)); propertySetter.AddProperty("Current Parallelism", () => ReflectBlockExtensions.GetCurrentDegreeOfParallelism(_targetDebugInfo), 60, Colors.WhiteSmoke); //propertySetter.SetBlockOptions(ReflectBlockExtensions.GetDataflowBlockOptions(_targetDebugInfo)); }
private void InitProperties(IDataflowBlock block, IBlockInitializer propertySetter) { propertySetter.SetInputQueueFactory(() => ReflectBlockExtensions.GetInputQueue(_debugInfo)); propertySetter.SetPostponedMessagesFactory(() => ReflectBlockExtensions.GetProsponedQueue(_debugInfo)); propertySetter.AddProperty("Current Parallelism", () => ReflectBlockExtensions.GetCurrentDegreeOfParallelism(_debugInfo), 60, Colors.WhiteSmoke); propertySetter.AddProperty("Is Completed", () => ReflectBlockExtensions.GetIsCompleted(_debugInfo), 61, Colors.WhiteSmoke); propertySetter.AddProperty("Declined Permanently", () => ReflectBlockExtensions.GetIsDecliningPermanently(_debugInfo), 62, Colors.WhiteSmoke); propertySetter.SetBlockOptions(ReflectBlockExtensions.GetDataflowBlockOptions(_debugInfo)); }