public override IEnumerable <OperationSignature> GetSignatures()
        {
            var upper   = new OperationSignature("toupper");
            var toUpper = new OperationSignature("upper");

            return(new OperationSignature[] { upper, toUpper });
        }
예제 #2
0
        public override IEnumerable <OperationSignature> GetSignatures()
        {
            var sleep = new OperationSignature("sleep")
            {
                Parameters = new List <OperationParameter>(1)
                {
                    new OperationParameter("time")
                }
            };
            var wait = new OperationSignature("wait")
            {
                Parameters = new List <OperationParameter>(1)
                {
                    new OperationParameter("time")
                }
            };

            return(new OperationSignature[] { sleep, wait });
        }
예제 #3
0
        private void RegisterTransform(ContainerBuilder builder, Func <IContext, ITransform> getTransform, OperationSignature sig)
        {
            if (_methodNames.Add(sig.Method))
            {
                var method = new Method {
                    Name = sig.Method, Signature = sig.Method
                };
                _shortHandRoot.Methods.Add(method);

                var signature = new Signature {
                    Name = sig.Method,
                    NamedParameterIndicator = sig.NamedParameterIndicator
                };

                foreach (var parameter in sig.Parameters)
                {
                    signature.Parameters.Add(new Parameter {
                        Name  = parameter.Name,
                        Value = parameter.Value
                    });
                }
                _shortHandRoot.Signatures.Add(signature);
            }

            // register the short hand
            builder.Register((c, p) => _shortHandRoot).Named <ShorthandRoot>(Name).InstancePerLifetimeScope();

            builder.Register((c, p) => getTransform(p.Positional <IContext>(0))).Named <ITransform>(sig.Method);
        }