private static object GetFilterSerializationBindingValue(FilterParameterAttribute filterParameterAttribute, PropertyInfo propertyInfo, FilterBindingContext context, IFilter filter) { if (filterParameterAttribute.Binding == null) { return propertyInfo.GetValue(filter); } var bindingObject = (IFilterParameterBinding)Activator.CreateInstance(filterParameterAttribute.Binding); return bindingObject.GetValue(context); }
private static string RunFilterSerializationFormat(FilterParameterAttribute filterParameterAttribute, Type filterType, PropertyInfo propertyInfo, object value) { if (value == null) { return string.Empty; } if (filterParameterAttribute.Formatter == null) { return value.ToString(); } if (!typeof(IFormatter).IsAssignableFrom(filterParameterAttribute.Formatter)) { throw new Exception(string.Format("IFilter type of \"{0}\" parameter \"{1}\", Formatter must be of type IFilterParameterFormatter.", filterType.Name, propertyInfo.Name)); } var formatterFromAttribute = (IFormatter)Activator.CreateInstance(filterParameterAttribute.Formatter); return formatterFromAttribute.Format(value); }