I am writing a windows service and I would like to use an IoC container for resolving dependencies in some of my classes. I have the following simple scenario.
public partial class serviecclass: ServiceBase
{
protected override void OnStart(string[] args)
{
StartServer();
}
public void StartServer()
{
//create class A
// do not have an interface for ClassA as in my app there will only be //one Version of ClassA
var classa=new ClassA();
classa.DoWork();
}
}
public ClassA
{
public ClassA()
{
}
public void DoWork()
{
// first do some work
//then call class b to do more work
var classb=new ClassB(?,?,new ClassE);
classb.DoOtherWork();
}
}
public ClassB
{
private IClassC _dependency1;
private IClassD _dependency2;
// do not have an interface for ClassE as in my app there will only be one
// version of ClassE
private ClassE _classe
public ClassB(IClassC c,IClassD d,ClassE e)
{
_dependencyc=c;
_dependencyd=d;
_classe =e;
}
public void DoOtherWork()
{
// do other work
}
}
In ClassA although it does not have a direct dependency on ClassC and ClassD is it still considered as having a dependency on ClassC and ClassD because i need to pass instances of IClassC c,IClassD when i create a new ClassB inside of ClassA?
do i need an interface for ClassA and ClassB just because ClassA depends on ClassB and serviceclass depends on ClassA(although i will never have different versions of ClassA and ClassB in my application)?
If i a use an IoC container to inject IClassC and IClassD into ClassB how do i create ClassB inside ClassA? var classb=new ClassB(?,?,new ClassE);
Thankyou for your patience. hope my question makes sense. I am just trying to understand how the whole concept of DI and Ioc works.