-
Website
http://www.emadibrahim.com -
Original page
http://www.emadibrahim.com/2008/08/29/property-injection-in-aspnet-mvc-with-ninject/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
danatkinson
1 comment · 1 points
-
Korayem
3 comments · 1 points
-
dukon21
1 comment · 1 points
-
Mladen Mihajlovic
1 comment · 1 points
-
Chad Myers
3 comments · 1 points
-
-
Popular Threads
Why are you opposed to Kernel.Get? It seems like I can easily achieve the goal I want without having to force every derived controller from calling the base controller consturctor with interfaces...
I am trying to get away from doing this
class DerviedClass : BaseClass
public DerivedClass(IService1, IService2) : base(IBaseService1, IBaseService2)
By using Kernel.Get in the base class then I eliminate the use of base(IBaseService1, IBaseService2) in the derived classes constructor... I hope that makes sense.
From the testing angle I'd rather be able to pass my dependencies in via the constructor (or set via a property) than have to mock an instance of IKernel up.
Think about how you're going to write tests for the controllers that use that property. With the code listed above you would have to either (a) mock the Kernel or (b) actually wire up DI for your tests.
to do anyway to inject constructor arguments. Actually my DI code in my
test project didn't change when I moved from constructor to property to
kernel.get...
At points, I feel like kernel.get is a good solution and at other points I
feel it's not. I can't explain it :)...
Btw, how deep can these threads go? =)
one method that just sets up my DI and all it is really doing is mocking all
the interfaces...
I don't know how deep the threads go... But we can find out :)... Are you
posting your comments on the site or are you just replying to the emails?
My only concern about doing DI on your tests is that now your tests have
dependencies that you can't see while reading the test.
with a lot of repetition in my unit tests and test fixtures. I might have
to post an example of how I am doing this, to get feedback from the
community. I might be experiencing tunnel vision, since I am the only one
writing, reviewing and refactoring the code...
var Provider = Kernel.Get<MembershipProvider>();