Exemplo n.º 1
0
        protected override DmdParameterInfo[] CreateParameters()
        {
            var parameterTypes = methodSignature.GetParameterTypes();
            var parameters     = parameterTypes.Count == 0 ? Array.Empty <DmdParameterInfo>() : new DmdParameterInfo[parameterTypes.Count];

            for (int i = 0; i < parameters.Length; i++)
            {
                parameters[i] = new DmdCreatedParameterDef(this, i, parameterTypes[i]);
            }
            return(parameters);
        }
Exemplo n.º 2
0
 DmdParameterInfo[] CreateIndexParameters()
 {
     if (GetGetMethod(DmdGetAccessorOptions.All) is DmdMethodInfo getMethod)
     {
         var ps  = getMethod.GetParameters();
         var res = new DmdParameterInfo[ps.Count];
         for (int i = 0; i < res.Length; i++)
         {
             res[i] = new DmdPropertyParameter(this, ps[i]);
         }
         return(res);
     }
     else if (GetSetMethod(DmdGetAccessorOptions.All) is DmdMethodInfo setMethod)
     {
         var ps = setMethod.GetParameters();
         if (ps.Count == 0)
         {
             return(Array.Empty <DmdParameterInfo>());
         }
         var res = new DmdParameterInfo[ps.Count - 1];
         for (int i = 0; i < res.Length; i++)
         {
             res[i] = new DmdPropertyParameter(this, ps[i]);
         }
         return(res);
     }
     else
     {
         var types = GetMethodSignature().GetParameterTypes();
         var res   = new DmdParameterInfo[types.Count];
         for (int i = 0; i < res.Length; i++)
         {
             res[i] = new DmdCreatedParameterDef(this, i, types[i]);
         }
         return(res);
     }
 }