<PackageReference Include="Castle.Core" Version="0.0.1110" />

RemoveIfEmptyAttribute

Removes a property if null or empty string, guid or collection.
using System; using System.Collections; namespace Castle.Components.DictionaryAdapter { public class RemoveIfEmptyAttribute : RemoveIfAttribute { private class RemoveIfEmptyCondition : ICondition { public static readonly RemoveIfEmptyCondition Instance = new RemoveIfEmptyCondition(); public bool SatisfiedBy(object value) { if (value != null && !IsEmptyString(value) && !IsEmptyGuid(value)) return IsEmptyCollection(value); return true; } private static bool IsEmptyString(object value) { if (value is string) return ((string)value).Length == 0; return false; } private static bool IsEmptyGuid(object value) { if (value is Guid) return (Guid)value == Guid.Empty; return false; } private static bool IsEmptyCollection(object value) { if (value is IEnumerable) return !((IEnumerable)value).GetEnumerator().MoveNext(); return false; } } private new Type Condition { get; set; } public RemoveIfEmptyAttribute() : base(RemoveIfEmptyCondition.Instance) { } } }