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); }
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; }