public bool IsEmpty(object value) { var smartReference = value as ISmartReference; if (smartReference == null) throw new ArgumentException("Value is not a valid smart reference."); return smartReference.IsEmpty; }