Circular Dependencies
In some cases you might experience that a circular dependency is preventing your Umbraco installing from starting up.
An example of this, could be a circular dependency on IUmbracoContextFactory
, which would happen if your service interacts with third party code that also depends on an IUmbracoContextFactory
instance.
In this situation, you can request a lazy version of the dependency so it won't evaluate during boot, and would only be evaluated when accessed:
public class SiteService : ISiteService
{
private readonly Lazy<IUmbracoContextFactory> _umbracoContextFactory;
public SiteService(Lazy<IUmbracoContextFactory> umbracoContextFactory)
{
_umbracoContextFactory = umbracoContextFactory;
}
public IPublishedContent GetNewsSection()
{
using (UmbracoContextReference umbracoContextReference = _umbracoContextFactory.Value.EnsureUmbracoContext())
{
// Do your thing
}
}
}