// Construct an instance of IEnumDebugPropertyInfo2 for the combined locals and parameters. private void CreateLocalsPlusArgsProperties(EnumDebugPropertyInfoContents contents, out uint elementsReturned, out IEnumDebugPropertyInfo2 enumObject) { elementsReturned = 0; if ((contents & EnumDebugPropertyInfoContents.eLocals) != 0) { if (_thisObject != null) { elementsReturned += elementsReturned + 1; } elementsReturned += (uint)_locals.Length; } if ((contents & EnumDebugPropertyInfoContents.eProperties) != 0) { elementsReturned += (uint)_parameters.Length; } DEBUG_PROPERTY_INFO[] propInfo = new DEBUG_PROPERTY_INFO[elementsReturned]; int propInfoIdx = 0; if ((contents & EnumDebugPropertyInfoContents.eLocals) != 0) { if (_thisObject != null) { propInfo[propInfoIdx++] = new XamarinProperty(_thisObject).ConstructDebugPropertyInfo(enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_STANDARD); } for (int i = 0; i < _locals.Length; i++) { propInfo[propInfoIdx++] = new XamarinProperty(_locals[i]).ConstructDebugPropertyInfo(enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_STANDARD); } } if ((contents & EnumDebugPropertyInfoContents.eProperties) != 0) { for (int i = 0; i < _parameters.Length; i++) { propInfo[propInfoIdx++] = new XamarinProperty(_parameters[i]).ConstructDebugPropertyInfo(enum_DEBUGPROP_INFO_FLAGS.DEBUGPROP_INFO_STANDARD); } } enumObject = new XamarinPropertyInfoEnum(propInfo); }
// This method evaluates the expression synchronously. int IDebugExpression2.EvaluateSync(enum_EVALFLAGS dwFlags, uint dwTimeout, IDebugEventCallback2 pExprCallback, out IDebugProperty2 ppResult) { ppResult = new XamarinProperty(_var); return(VisualStudioExtensionConstants.S_OK); }
public XamarinExpressionEvaluationCompleteEvent(XamarinExpression expression, XamarinProperty property) { _expression = expression; _property = property; }