this general problem boil down small. let's have interface generic service.
first part
public interface igenericservice<t> { void create(t add); void read(); void update(t obj); void delete(t obj); } and it's implementations:
public class dogservice : igenericservice<dog> { void create(dog add){} void read(){} void update(dog obj){} void delete(dog obj){} } and second repo has unique, additional functionality miau()
public class catservice: igenericservice<cat> { void create(cat add){} void read(){} void update(cat obj){} void delete(cat obj){} void miau(){} } now when using ioc's go for:
bind<igenericservice<dog>,dogservice> bind<igenericservice<cat>,catservice> now somewhere in viewmodel:
public class catsviewmodel { public catsviewmodel(igenericservice<cat> catservice) { //how have miau functionality here? } } 1.how can have miau functionality here? should make second interface dogservice idogservice , use way in here? purpose of generic repo ?
second part let's have genericviewmodel this:
public abstract class genericviewmodel<t> { t collection { get; } public genericviewmodel(igenericservice<t> service) { collection = service.read(); } } and fine. if want use catservice
public class catviewmodel : genericviewmodel<cat> { public catviewmodel(igenericservice<t> service) : base(service) { // make miau here? } } should create icatservice interface , inject instance of same service 2 different interfaces? know can cast igenericservice since know kind of service approach?
these questions habits not solution works :)
Comments
Post a Comment