internal ReflectBlock(IDataflowBlock block, IBlockInitializer propertySetter) { if (block == null) { return; } var targetType = block.GetType(); object debugViewProvider = null; FieldInfo debugViewProviderField = targetType.GetField("m_defaultTarget", ReflectBlockExtensions.DEFAULT_FLAGS); if (debugViewProviderField != null) { debugViewProvider = debugViewProviderField.GetValue(block); } if (debugViewProvider == null) { debugViewProviderField = targetType.GetField("m_spscDebugInfo", ReflectBlockExtensions.DEFAULT_FLAGS); if (debugViewProviderField != null) { debugViewProvider = debugViewProviderField.GetValue(block); } } if (debugViewProvider == null) { return; } MethodInfo getDebuggingInformationMethod = debugViewProvider.GetType().GetMethod("GetDebuggingInformation", ReflectBlockExtensions.DEFAULT_FLAGS); _debugInfo = getDebuggingInformationMethod.Invoke(debugViewProvider, new object[0]); InitProperties(block, propertySetter); }
public static IReflectBlock Create <TIn, TOut>(IPropagatorBlock <TIn, TOut> block, IBlockInitializer propertySetter) { if (block is TransformBlock <TIn, TOut> ) { var reflectView = new ReflectTransformBlock <TIn, TOut>(block as TransformBlock <TIn, TOut>, propertySetter); return(reflectView); } else if (block is BufferBlock <TIn> ) { var reflectView = new ReflectBufferBlock <TIn>(block as BufferBlock <TIn>, propertySetter); return(reflectView); } else { return(null); } }