c# - Extension method for generic interface does not show on subclasses -
i trying implement extension method initialize moq repositories mvc3 application. have repository interface:
public interface irepository<tentity> : idisposable tentity : class { //methods }
i have several classes such userrepository implement interface:
public interface iuserrepository : irepository<user> { //specific methods user repository } public class userrepository : efrepositorybase<user>, iuserrepository { }
efrepositorybase repository base class providing general methods repository. in unit tests create extension method each type of repository retrieve mock repository. tried adding extension method this:
public static class repositoryhelpers { public static mock<irepository<t>> getmockrepository<t>(this irepository<t> repository, params t[] items) t : class { mock<irepository<t>> mock = new mock<irepository<t>>(); mock.setup(m => m.getall()).returns(items.asqueryable()); return mock; } }
however not seem work. expecting use userrepository.getmockrepository(...) retrieve initialized mock repository method not show on userrepository.
update
i got work new userrepository().getmockrepository(), there way make method available static method dont have new userrepository?
extension methods instances of objects, not add static methods type.
try this
(new userrepository()).getmockrepository(...)
Comments
Post a Comment