예제 #1
0
        /// <summary>
        /// reefines a prameter; not possible for return parameter, ...? TODO: refact ...
        /// </summary>
        /// <param name="methodBuild"></param>
        /// <param name="spec"></param>
        /// <param name="paramNr"></param>
        private void DefineParameter(MethodBuilder methodBuild, ParameterSpec spec, int paramNr)
        {
            ParameterAttributes paramAttr = ParameterAttributes.None;

            if (spec.IsOut())
            {
                paramAttr = paramAttr | ParameterAttributes.Out;
            }
            ParameterBuilder paramBuild = methodBuild.DefineParameter(paramNr, paramAttr, spec.GetPramName());
            // custom attribute spec
            TypeContainer specType = spec.GetParamType();

            for (int i = 0; i < specType.GetSeparatedAttrs().Length; i++)
            {
                paramBuild.SetCustomAttribute(specType.GetSeparatedAttrs()[i]);
            }
        }
예제 #2
0
 /// <summary>
 /// reefines a prameter; not possible for return parameter, ...? TODO: refact ...
 /// </summary>
 /// <param name="methodBuild"></param>
 /// <param name="spec"></param>
 /// <param name="paramNr"></param>
 private void DefineParameter(MethodBuilder methodBuild, ParameterSpec spec, int paramNr) {
     ParameterAttributes paramAttr = ParameterAttributes.None;
     if (spec.IsOut()) { 
         paramAttr = paramAttr | ParameterAttributes.Out; 
     }
     ParameterBuilder paramBuild = methodBuild.DefineParameter(paramNr, paramAttr, spec.GetPramName());
     // custom attribute spec
     TypeContainer specType = spec.GetParamType();
     for (int i = 0; i < specType.GetSeparatedAttrs().Length; i++) {
         paramBuild.SetCustomAttribute(specType.GetSeparatedAttrs()[i]);    
     }
 }