StructureMapConfiguration.ForRequestedType<IConsumer>().AddConcreteType<Consumer>();
Этот метод добавит тип Consumer в качестве подключенного типа для IConsumer. Если для IConsumer нет других подключенных типов, тогда этот тип будет типом по умолчанию, возвращаемым, если запрашивается экземпляр IConsumer. В противном случае вам нужно будет получить этот экземпляр, используя конкретный ключ (по умолчанию это квалифицированное для сборки имя типа).
StructureMapConfiguration.ForRequestedType<IConsumer>().TheDefaultIsConcreteType<Consumer>();
Это работает аналогично AddConcreteType, за исключением того, что он также делает тип типом по умолчанию. Если в запросе IConsumer не указан конкретный ключ, этот тип будет возвращен.
Что касается разницы между AddInstanceOf и ForRequestedType, AddInstance of позволяет вам предоставить делегат, который будет обрабатывать создание экземпляра указанного типа. ForRequestedType предоставляет вам экземпляр CreatePluginFamilyExpression (или GenericFamilyExpression в случае ForRequestedType (Type t)), который позволяет вам свободно конфигурировать экземпляр.