Beispiel #1
0
        /// <summary>
        /// Extends the specific method for a particular array of arguments to be used with the container.
        /// </summary>
        public IMethod Create(System.Reflection.MethodInfo methodInfo, Argument[] arguments)
        {
            var methodHash = new MethodHash(methodInfo);

            if (!methods.ContainsKey(methodHash))
                methods.Add(methodHash, new List<IMethod>());

            var methodMetaData = new MethodMetaData(methodHash, arguments);

            methods[methodHash].Add(methodMetaData);

            return methodMetaData;
        }
Beispiel #2
0
        /// <summary>
        /// Gets the extended container method.
        /// </summary>
        public IMethod Get(System.Reflection.MethodInfo methodInfo, object[] arguments)
        {
            var methodHash = new MethodHash(methodInfo);

            if (methods.ContainsKey(methodHash))
            {
                foreach (var metaData in methods[methodHash])
                {
                    if (metaData.ValidateArguments(arguments))
                        return metaData;
                }
            }
            return null;
        }
Beispiel #3
0
 public HashedMethod(IntPtr hMODULE, int token, MethodInfo method, MethodHash hash) : base(hMODULE, token, method, hash)
 {
 }