public new TypeDetails GetType()
        {
            MethodDef           method       = _remove ?? _add;
            ParamSignatureToken delegateType = method.Signiture.GetParameterTokens()[0];
            TypeDetails         details      = delegateType.GetTypeDetails(method);

            return(details);
        }
        /// <summary>
        /// Resolves the parameter indicated by the <paramref name="sequence"/> to it's defining type.
        /// </summary>
        /// <param name="sequence">The sequence in the parameter list.</param>
        /// <returns>Null if it could not be resolved otherwise the TypeRef for the parameter.</returns>
        public TypeRef ResolveParameter(int sequence)
        {
            TypeRef resolvedType = null;

            // zero indicates the return parameter for a method, this is handled differently
            if (sequence != 0)
            {
                ParamSignatureToken token = Signiture.GetParameterTokens()[sequence - 1];
                return(token.ResolveParameter(Assembly, Parameters[sequence - 1]));
            }

            return(resolvedType);
        }
Beispiel #3
0
        public void ByRef_TokenIsSetForRefParameters()
        {
            TypeDef   typeDef  = _assemblyDef.FindType("DocumentationTest", "AllOutputTypesClass");
            MethodDef method   = typeDef.GetMethods().First(p => p.Name == "bb");
            ParamDef  refParam = method.Parameters.Find(p => p.Name == "y");
            Signature sig      = method.Signiture;

            // get the details of the byref parameter
            ParamSignatureToken byRefToken  = method.Signiture.GetParameterTokens()[refParam.Sequence - 1];
            ParamSignatureToken notRefToken = method.Signiture.GetParameterTokens()[0];

            Assert.IsTrue(byRefToken.IsByRef);
            Assert.IsFalse(notRefToken.IsByRef);
        }
        public new TypeDetails GetType()
        {
            TypeDetails details = null;

            if (_get != null)
            {
                ReturnTypeSignatureToken returnType = (ReturnTypeSignatureToken)_get.Signiture.Tokens.Find(
                    t => t.TokenType == SignatureTokens.ReturnType
                    );
                details = returnType.GetTypeDetails(_get);
            }
            else
            {
                ParamSignatureToken delegateType = _set.Signiture.GetParameterTokens()[0];
                details = delegateType.GetTypeDetails(_set);
            }
            return(details);
        }
 public ParameterSyntax(ParamDef param, ParamSignatureToken signitureToken)
 {
     _param          = param;
     _signitureToken = signitureToken;
 }