public override bool OnBeginRecipe(object currentValue, out object newValue) { newValue = null; if (currentValue == null) { CodeClass currentDSAClass = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), currentDSAClassExpression) as CodeClass; string propertyName = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), propertyNameExpression) as string; bool built = true; object builtValue = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), builtExpression); if (builtValue != null) { built = (bool)builtValue; } if (currentDSAClass != null && built) { Type dsaType = DteConverter.ToType(currentDSAClass); if (dsaType != null) { newValue = dsaType.InvokeMember(propertyName, BindingFlags.Static | BindingFlags.Public | BindingFlags.GetProperty, null, null, null); if (newValue != null) { return(true); } } } } return(false); }
public override bool OnBeginRecipe(object currentValue, out object newValue) { newValue = null; if (currentValue == null) { CodeClass currentDSAClass = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), currentDSAClassExpression) as CodeClass; string methodName = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), methodNameExpression) as string; bool built = true; object builtValue = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), builtExpression); if (builtValue != null) { built = (bool)builtValue; } if (currentDSAClass != null && built) { Type dsaType = DteConverter.ToType(currentDSAClass); if (dsaType != null) { MethodInfo method=dsaType.GetMethod(methodName); if (method != null && method.IsStatic && method.GetParameters().Length==0) { newValue = method.Invoke(null, null); newValue = MethodBehaviorHelper.TranslateToOfflineBehavior(newValue); } } } } return currentValue!=newValue; }
public override bool OnBeginRecipe(object currentValue, out object newValue) { newValue = null; if (currentValue == null) { CodeClass currentDSAClass = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), currentDSAClassExpression) as CodeClass; Type proxyType = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), proxyTypeExpression) as Type; if (currentDSAClass != null && proxyType != null) { Type dsaType = DteConverter.ToType(currentDSAClass); if (dsaType != null) { newValue = MethodBehaviorHelper.GetMethodsBehavior(dsaType, proxyType); } } } return(currentValue != newValue); }
public override bool OnBeginRecipe(object currentValue, out object newValue) { DTE vs = GetService <DTE>(true); newValue = null; if (vs.SelectedItems.Item(1).Project == null) { ProjectItem webRef = vs.SelectedItems.Item(1).ProjectItem; if (webRef == null) { throw new InvalidOperationException(Properties.Resources.NoProxyFound); } ProjectItem proxyItem = FindProxyClass(webRef.ProjectItems); if (proxyItem == null) { throw new InvalidOperationException(Properties.Resources.NoProxyFound); } if (proxyItem.FileCodeModel == null) { throw new InvalidOperationException(Properties.Resources.NoProxyFound); } bool built = true; object builtValue = ExpressionEvaluationHelper.EvaluateExpression((IDictionaryService)GetService(typeof(IDictionaryService)), builtExpression); if (builtValue != null) { built = (bool)builtValue; } if (built) { CodeClass proxyTypeCodeClass = CodeModelHelper.FindFirstClass(proxyItem.FileCodeModel.CodeElements, CodeModelHelper.IsProxyClass); newValue = DteConverter.ToType(proxyTypeCodeClass); } } return(true); }