public SingleBindingSyntax(IImplementationResolver resolver) { _binding = new SingleBinding { Service = typeof(TImpl), Resolver = resolver }; }
//todo: very weirdly, after updating StructureMap to version 3, double dispatch via dynamic not works anymore(http://stackoverflow.com/questions/27011810/mystery-with-dynamic-type-double-dispatch) private static object ApplyResolver(GenericFamilyExpression builder, IImplementationResolver resolver) { if (resolver is StaticResolver) { return(builder.Add(((StaticResolver)resolver).Target)); } if (resolver is InstanceResolver) { return(builder.Add(((InstanceResolver)resolver).Instance)); } if (resolver is DynamicResolver) { return(builder.Add(c => ((DynamicResolver)resolver).FactoryFunc())); } Assumes.Fail("Unsupported IImplementationResolver implementation"); return(null); }
//todo: very weirdly, after updating StructureMap to version 3, double dispatch via dynamic not works anymore(http://stackoverflow.com/questions/27011810/mystery-with-dynamic-type-double-dispatch) private static object ApplyResolver(GenericFamilyExpression builder, IImplementationResolver resolver) { if (resolver is StaticResolver) return builder.Add(((StaticResolver)resolver).Target); if (resolver is InstanceResolver) return builder.Add(((InstanceResolver)resolver).Instance); if (resolver is DynamicResolver) return builder.Add(c => ((DynamicResolver)resolver).FactoryFunc()); Assumes.Fail("Unsupported IImplementationResolver implementation"); return null; }