private static MemberInfo GetMemberInfo(LambdaExpression memberSelector) { Ensure.ArgumentMatches(memberSelector.Body.NodeType == ExpressionType.MemberAccess, MemberIsNotAccess); var memberExpression = (MemberExpression)memberSelector.Body; return(memberExpression.Member); }
private static MethodInfo GetMethodInfo(LambdaExpression methodSelector) { Ensure.ArgumentMatches(methodSelector.Body.NodeType == ExpressionType.Call, MethodIsNotCall); var callExpression = (MethodCallExpression)methodSelector.Body; return(callExpression.Method); }
public static FieldInfo GetField <TResult>(Expression <Func <TTarget, TResult> > fieldSelector) { var info = GetMemberInfo(fieldSelector) as FieldInfo; Ensure.ArgumentMatches(info != null, MemberIsNotField); return(info); }
public static PropertyInfo GetProperty <TResult>(Expression <Func <TTarget, TResult> > propertySelector) { var info = GetMemberInfo(propertySelector) as PropertyInfo; Ensure.ArgumentMatches(info != null, MemberIsNotProperty); return(info); }
private IRibbonView ForgetAssociation(IRibbonTabView tabView) { Ensure.ArgumentMatches(this.tabToRibbonMap.ContainsKey(tabView), "The contextual tab group was not shown before or has already been removed."); IRibbonView ribbon = this.tabToRibbonMap[tabView]; this.tabToRibbonMap.Remove(tabView); return(ribbon); }
public void Deactivate(object viewModel) { Ensure.ArgumentMatches(this.managers.ContainsKey(viewModel), viewModel, "viewModel", "The view model is not activated."); ILifecycleManager manager = this.managers[viewModel]; manager.Deactivate(); this.managers.Remove(viewModel); }
public void Activate(object viewModel) { Ensure.ArgumentMatches(!this.managers.ContainsKey(viewModel), viewModel, "viewModel", "The view model is already activated."); ILifecycleManager manager = this.managerFactory.Create(viewModel); this.managers.Add(viewModel, manager); manager.Activate(); }
private static FieldInfo GetEnumInfo(LambdaExpression enumerationValueSelector) { Ensure.ArgumentMatches(enumerationValueSelector.Body.NodeType == ExpressionType.Constant, EnumerationValueNotConstant); var constantExpression = (ConstantExpression)enumerationValueSelector.Body; string enumName = constantExpression.Type.GetEnumName(constantExpression.Value); return(constantExpression.Type.GetField(enumName)); }