I am using StructureMap 4.4.1. In my code, I have 1 concrete class, TransactionalDatabaseClient, that implements ITransactionalDatabaseClient, which inherits from IDatabaseClient. I'm using the Forward method to redirect requests for ITransactionalDatabaseClient to resolve using the registrations for the base interface, IDatabaseClient.
Here is the relevant section of my Registry:
For<IDatabaseClient>().Add(context => new TransactionalDatabaseClient(context.GetInstance<IConnectionManager>(), "sqlserver")).Named("sqlserver");
For<IDatabaseClient>().Add(context => new TransactionalDatabaseClient(context.GetInstance<IConnectionManager>(), "oracle")).Named("oracle");
Forward<IDatabaseClient, ITransactionalDatabaseClient>();
The problem is that when I request a named instance of ITransactionalDatabaseClient, StructureMap complains that the named instance does not exist.
What am I doing wrong? Is there a workaround for this?