예제 #1
0
        internal static ParameterWrapContext GetContext(MethodWrapContext methodWrapContext, ParameterInfo parameterInfo)
        {
            MethodInfo methodInfo = methodWrapContext.methodInfo;

            Attribute            attribute;
            ParameterWrapContext parameterContext;
            BaseAttribute        LarkAttribute;



            parameterContext = new ParameterWrapContext(methodWrapContext, parameterInfo);
            IEnumerable <Attribute> attributes = parameterInfo.GetCustomAttributes();
            IEnumerator <Attribute> enumerator = attributes.GetEnumerator();

            while (enumerator.MoveNext())
            {
                attribute = enumerator.Current;
                if (false == typeof(BaseAttribute).IsInstanceOfType(attribute))
                {
                    continue;
                }
                LarkAttribute = attribute as BaseAttribute;

                LarkAttribute.SaveToParameterContext(parameterContext);
            }

            parameterContext.BindAttribute();
            return(parameterContext);
        }
예제 #2
0
        private void SaveParameter()
        {
            ParameterInfo parameter;

            ParameterInfo[]      parameterInfos = this.methodInfo.GetParameters();
            ParameterWrapContext parameterWrap;

            for (int i = 0; i < parameterInfos.Length; i++)
            {
                parameter     = parameterInfos[i];
                parameterWrap = ParameterWrapContext.GetContext(this, parameter);
                ParameterCache.Add(parameterWrap);
            }
            ParameterCache.ForEach(x =>
            {
                x.CreateBind();
            });
        }