StructureMap singleton usage (A class implementing two interface)

c#, singleton, structuremap

Solution

You can use the Forward<,>() registration to tell StructureMap to resolve a type using the resolution of a different type. This should do what you expect:

ObjectFactory.Initialize(x =>
{
    x.For<IInterface1>().Singleton().Use<MyClass>();
    x.Forward<IInterface1, IInterface2>();
});

Problem

``` public interface IInterface1 { } public interface IInterface2 { } public class MyClass : IInterface1, IInterface2 { } ... ObjectFactory.Initialize(x => { x.For<IInterface1>().Singleton().Use<MyClass>(); x.For<IInterface2>().Singleton().Use<MyClass>(); }); var x = ObjectFactory.GetInstance<IInterface1>(); var y = ObjectFactory.GetInstance<IInterface2>(); ``` I get two different MyClass instances with the above code. How can I get one?

Original source