Defer component creation until resolve

Nov 6, 2008 at 10:04 PM
Quick (hopefully) question with Unity - deferred creation of components. Autofac lets me do funky things like:

builder.Register(c =>
    var factory = new ClientFactory<IMyService>();
    return factory.CreateProxy();

In this case I'm registering an expression that won't get executed until I attempt to do container.Resolve<IMyService>().

Is there some way to pull this off in Unity?

Nov 6, 2008 at 11:26 PM
Check out the StaticFactoryExtension we ship in the box. It does exactly this.

Be aware that if you use it, the delegate you register completely replaces the normal creation logic, so it is, for example, responsible for injecting properties directly.

Nov 7, 2008 at 12:27 AM
Awesome - thanks Chris - I'll check it out!