Как определить методы расширения для универсального класса?

У меня есть общий интерфейс как:

public IRepository< T >
{

    void Add(T entity);

}

и класс как:

public class Repository< T >:IRepository< T >
{

    void Add(T entity)
    {      //Some Implementation
    }

}

Теперь я хочу создать метод расширения для указанного выше интерфейса. Я создал следующий класс:

public static class RepositoryExtension

{

    public static void Add(this IRepository< T > dataAccessRepository, T entity, string additionalValue)

    {
        //Some Implementation
    }

}

Но я получаю ошибку в методе добавления расширения. Он не распознает тип T, который я передал в IRepository. Я не могу передать этот тип в мой класс методов расширения, то есть RepositoryExtension . Пожалуйста, укажите соответствующий путь.

8
задан Vivien Barousse 20 September 2010 в 07:28
поделиться