Exemple #1
0
        void WriteRefIfByRef(DmdParameterInfo param)
        {
            if ((object)param == null)
            {
                return;
            }
            var type = param.ParameterType;

            if (!type.IsByRef)
            {
                return;
            }
            if (!param.IsIn && param.IsOut)
            {
                OutputWrite(Keyword_out, BoxedTextColor.Keyword);
                WriteSpace();
            }
            else if (!param.IsIn && !param.IsOut && TypeFormatterUtils.IsReadOnlyParameter(param))
            {
                OutputWrite(Keyword_in, BoxedTextColor.Keyword);
                WriteSpace();
            }
            else
            {
                OutputWrite(Keyword_ref, BoxedTextColor.Keyword);
                WriteSpace();
            }
        }
Exemple #2
0
 public OptionalAttributeInfo(DmdParameterInfo parameter)
 {
     if (parameter.IsOptional)
     {
         var caType = parameter.Member.AppDomain.GetWellKnownType(DmdWellKnownType.System_Runtime_InteropServices_OptionalAttribute, isOptional: true);
         ctor = caType?.GetConstructor(Array.Empty <DmdType>());
         Debug.Assert((object)caType == null || (object)ctor != null);
     }
     else
     {
         ctor = null;
     }
 }
 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);
     }
 }
 public DmdCreatedParameterInfo(DmdMemberInfo member, DmdParameterInfo originalParameter, DmdType parameterType)
 {
     Member = member ?? throw new ArgumentNullException(nameof(member));
     this.originalParameter = originalParameter ?? throw new ArgumentNullException(nameof(originalParameter));
     ParameterType          = parameterType ?? throw new ArgumentNullException(nameof(parameterType));
 }
 public DmdPropertyParameter(DmdPropertyDef property, DmdParameterInfo parameter)
 {
     Member         = property ?? throw new ArgumentNullException(nameof(property));
     this.parameter = parameter ?? throw new ArgumentNullException(nameof(parameter));
 }
Exemple #6
0
 public static bool IsReadOnlyParameter(DmdParameterInfo parameter) => HasIsReadOnlyAttribute(parameter.CustomAttributes);