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
Post a Comment