示例#1
0
 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;
        }