public override IEnumerable<Attribute> LoadDeclaredAttributes(MemberSpec memberSpec)
{
var attrs = base.LoadDeclaredAttributes(memberSpec);
var typeSpec = memberSpec as TypeSpec;
if (typeSpec != null)
{
var customClientLibraryType = Filter.GetClientLibraryType(typeSpec.Type);
if (customClientLibraryType != null)
attrs = attrs.Append(new CustomClientLibraryTypeAttribute(customClientLibraryType));
var customJsonConverter = Filter.GetJsonConverterForType(typeSpec.Type);
if (customJsonConverter != null)
attrs = attrs.Append(new CustomJsonConverterAttribute(customJsonConverter));
}
var propSpec = memberSpec as PropertySpec;
if (propSpec != null)
{
var formulaExpr = Filter.GetPropertyFormula(propSpec.ReflectedType, propSpec.PropertyInfo);
if (formulaExpr != null)
attrs = attrs.Append(new PropertyFormulaAttribute(formulaExpr));
attrs =
attrs.Concat(
Filter.GetPropertyAttributes(propSpec.ReflectedType, propSpec.PropertyInfo).EmptyIfNull());
}
return attrs;
}