IQueryable<T> Extension de la Méthode ne fonctionne pas

Comment puis-je faire une extension de la méthode qui fonctionne comme ceci

public static class Extensions<T>
{
    public static IQueryable<T> Sort(this IQueryable<T> query, string sortField, SortDirection direction)
    {
        //System.Type dataSourceType = query.GetType();

        //System.Type dataItemType = typeof(object);

        //if (dataSourceType.HasElementType)
        //{
        //   dataItemType = dataSourceType.GetElementType();
        //}
        //else if (dataSourceType.IsGenericType)
        //{
        //   dataItemType = dataSourceType.GetGenericArguments()[0];
        //}

        //var fieldType = dataItemType.GetProperty(sortField);
        if (direction == SortDirection.Ascending)
            return query.OrderBy(s => s.GetType().GetProperty(sortField));
        return query.OrderByDescending(s => s.GetType().GetProperty(sortField));

    }
}

Actuellement qui dit que "les méthodes d'Extension doit être défini dans un non-générique statique de la classe".

Comment puis-je faire cela?

OriginalL'auteur Micah | 2010-04-01