c# - Unity getting different types for different class with same interface -


hi in need register 2 types same interface in unity.

here example of trying do:

container.registertype(typeof(iperson) , typeof(administrator)) container.registertype(typeof(iperson) , typeof(director))  public class school{     private iperson _director;     public school(iperson director){        _director = director;     } }   public class building{     private iperson _administrator;     public building(iperson administrator){        _administrator= administrator;     } } 

how go in telling unity class school want director instance , class building want administrator instance?

imho container not factory. it's typically used resolve services. , if class dependent of specific implementation it's not dependent on interface. hence architecture flawed , need corrected.

the common approach use factory in class instead:

public class school{     private iperson _director;     public school(ipersonfactory factory){        _director = factory.createdirector();     } }  public class building{     private iperson _administrator;     public building(ipersonfactory factory){        _administrator = factory.createadministrator();     } } 

but imho useless directors , administrators different different schools/buildings. such use:

public class school{     private iperson _director;     public school(istaffrepository staffing){        _director = staffing.getdirector(_schoolname);     } } 

don't use ioc containers business entities. use them resolve classes (services) used maintain/work entities.


Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -