コード例 #1
0
        static public IResolvable AsResolvable(this ParameterInfo parameterInfo)
        {
            Attribute[] attributes = parameterInfo.Attributes();
            IResolvable resolvable = attributes.ResolvableAttribute().GetResolvable(parameterInfo.ParameterType, attributes);

            if (parameterInfo.HasDefaultValue)
            {
                resolvable = new DefaultableResolvable(resolvable, parameterInfo.DefaultValue);
            }

            return(resolvable);
        }
コード例 #2
0
        static public ResolvableInjectable <IResolvable, InjectableParameter> AsResolvableInjectable(this ParameterInfo parameterInfo)
        {
            Attribute[]             attributes          = parameterInfo.Attributes();
            ResolvableAttributeBase resolvableAttribute = attributes.ResolvableAttribute();

            var injectable = new InjectableParameter(resolvableAttribute.GetInjectionScenario(parameterInfo.ParameterType), parameterInfo);

            IResolvable resolvable = resolvableAttribute.GetResolvable(injectable.Type, attributes);

            if (injectable.HasDefaultValue)
            {
                resolvable = new DefaultableResolvable(resolvable, injectable.DefaultValue);
            }

            return(new ResolvableInjectable <IResolvable, InjectableParameter>(resolvable, injectable));
        }