protected override void CacheMetadata(CodeActivityMetadata metadata) { bool isRequired = false; if (typeof(TOperand).IsEnum) { metadata.AddValidationError(System.Activities.SR.TargetTypeCannotBeEnum(base.GetType().Name, base.DisplayName)); } if (string.IsNullOrEmpty(this.FieldName)) { metadata.AddValidationError(System.Activities.SR.ActivityPropertyMustBeSet("FieldName", base.DisplayName)); } else { FieldInfo field = null; field = typeof(TOperand).GetField(this.FieldName); if (field == null) { metadata.AddValidationError(System.Activities.SR.MemberNotFound(this.FieldName, typeof(TOperand).Name)); } else { ValidationError error; isRequired = !field.IsStatic; if (!MemberExpressionHelper.TryGenerateLinqDelegate <TOperand, TResult>(this.FieldName, true, field.IsStatic, out this.operationFunction, out error)) { metadata.AddValidationError(error); } } } MemberExpressionHelper.AddOperandArgument <TOperand>(metadata, this.Operand, isRequired); }
protected override void CacheMetadata(CodeActivityMetadata metadata) { bool isRequired = false; if (typeof(TOperand).IsEnum) { metadata.AddValidationError(SR.TargetTypeCannotBeEnum(this.GetType().Name, this.DisplayName)); } if (string.IsNullOrEmpty(this.PropertyName)) { metadata.AddValidationError(SR.ActivityPropertyMustBeSet("PropertyName", this.DisplayName)); } else { PropertyInfo propertyInfo = null; Type operandType = typeof(TOperand); propertyInfo = operandType.GetProperty(this.PropertyName); if (propertyInfo == null) { metadata.AddValidationError(SR.MemberNotFound(this.PropertyName, typeof(TOperand).Name)); } else { Fx.Assert(propertyInfo.GetAccessors().Length > 0, "Property should have at least 1 accessor."); this.isOperationFunctionStatic = propertyInfo.GetAccessors()[0].IsStatic; isRequired = !this.isOperationFunctionStatic; ValidationError validationError; if (!MemberExpressionHelper.TryGenerateLinqDelegate(this.PropertyName, false, this.isOperationFunctionStatic, out this.operationFunction, out validationError)) { metadata.AddValidationError(validationError); } MethodInfo getMethod = propertyInfo.GetGetMethod(); MethodInfo setMethod = propertyInfo.GetSetMethod(); if ((getMethod != null && !getMethod.IsStatic) || (setMethod != null && !setMethod.IsStatic)) { isRequired = true; } } } MemberExpressionHelper.AddOperandArgument(metadata, this.Operand, isRequired); }
protected override void CacheMetadata(CodeActivityMetadata metadata) { bool isRequired = false; if (typeof(TOperand).IsEnum) { metadata.AddValidationError(System.Activities.SR.TargetTypeCannotBeEnum(base.GetType().Name, base.DisplayName)); } if (string.IsNullOrEmpty(this.PropertyName)) { metadata.AddValidationError(System.Activities.SR.ActivityPropertyMustBeSet("PropertyName", base.DisplayName)); } else { PropertyInfo property = null; property = typeof(TOperand).GetProperty(this.PropertyName); if (property == null) { metadata.AddValidationError(System.Activities.SR.MemberNotFound(this.PropertyName, typeof(TOperand).Name)); } else { ValidationError error; isRequired = !property.GetAccessors()[0].IsStatic; if (!MemberExpressionHelper.TryGenerateLinqDelegate <TOperand, TResult>(this.PropertyName, false, property.GetAccessors()[0].IsStatic, out this.operationFunction, out error)) { metadata.AddValidationError(error); } MethodInfo getMethod = property.GetGetMethod(); MethodInfo setMethod = property.GetSetMethod(); if (((getMethod != null) && !getMethod.IsStatic) || ((setMethod != null) && !setMethod.IsStatic)) { isRequired = true; } } } MemberExpressionHelper.AddOperandArgument <TOperand>(metadata, this.Operand, isRequired); }
protected override void CacheMetadata(CodeActivityMetadata metadata) { bool isRequired = false; if (typeof(TOperand).IsEnum) { metadata.AddValidationError(SR.TargetTypeCannotBeEnum(this.GetType().Name, this.DisplayName)); } if (string.IsNullOrEmpty(this.FieldName)) { metadata.AddValidationError(SR.ActivityPropertyMustBeSet("FieldName", this.DisplayName)); } else { FieldInfo fieldInfo = null; Type operandType = typeof(TOperand); fieldInfo = operandType.GetField(this.FieldName); if (fieldInfo == null) { metadata.AddValidationError(SR.MemberNotFound(this.FieldName, typeof(TOperand).Name)); } else { this.isOperationFunctionStatic = fieldInfo.IsStatic; isRequired = !this.isOperationFunctionStatic; ValidationError validationError; if (!MemberExpressionHelper.TryGenerateLinqDelegate(this.FieldName, true, this.isOperationFunctionStatic, out this.operationFunction, out validationError)) { metadata.AddValidationError(validationError); } } } MemberExpressionHelper.AddOperandArgument(metadata, this.Operand, isRequired); }