I am new to dependency injection, and I am trying to solve an issue. I have two services. Each of these services have methods who need eachother.

For instance: `SiteManager` have methods where it needs my `ForumManager`. My `ForumManager` have methods where it needs my `SiteManager`.

**I have the following two classes**:

```
public class SiteManager:ISiteManager
{
    public IForumManager ForumManager { get; set; }

    public SiteManager()
    {
        this.ForumManager = new ForumManager();
    }
}

public class ForumManager:IForumManager
{
    public ISiteManager SiteManager { get; set; }

    public ForumManager()
    {
        this.SiteManager = new SiteManager();
    }
}

```

Very obviously this will result in a stack overflow exception, as they call eachother. I've read a lot of posts here, and I think I just need a small hint on how to solve this. I have my interfaces in their own assembly.

I thought about putting the dependencies in their own property so when they are used, they are made. However, is this best practice?

I do not use an IoC container (and I haven't used that before).

Any hints on how to solve this particular issue in a "best practice" way! :-)