public virtual IEnumerable<string> GetDynamicMemberNames( object target )
{
var provider = target as IDynamicMetaObjectProvider;
if ( provider == null )
{
return Enumerable.Empty<string>();
}
DynamicMetaObject meta = provider.GetMetaObject( Expression.Constant( target ) );
return meta.GetDynamicMemberNames();
}