c# - Dependency injection in domain object extension methods -
i'm creating node based web cms system in asp.net mvc.
having read books on dependency injection i've split solution multiple projects , using abstractions (abstract classes , interfaces).
i can't figure out how solve following type of code in web project:
mydomainobjectnode.getchildnodes<somesubnodeclass>(); i accomplish if domain object had reference inoderepository mean have carry dependency around in domain objects hassle, when having create new instances. having dependencies (mainly repositories) in domain object bad thing?
my other idea achieve using extension methods. however, extension methods static on static class cannot constructed using ioc. solve using singleton inoderepository , having set ioc.
this doesn't feel elegant solution... have other ideas or input?
thank you!
i typically avoid giving domain object access repositories , hide persistence concerns as possible.
when create mydomainobjectnode fill collection of childnodes hold concrete object references. typically concern builder or factory.
i'd drop generic type filter collection , use linq, childnodes collection return ienumerable<basenode>.
of course can augment various deferred loading , caching strategies, typical orm can with.
if decide use repository domain object favor inject through constructor. makes dependency explicit , externalize it's scope.
Comments
Post a Comment