public override bool Equals(object obj) { MetadataOnlyParameterInfo metadataOnlyParameterInfo = obj as MetadataOnlyParameterInfo; if (metadataOnlyParameterInfo == null) { return(false); } if (!metadataOnlyParameterInfo.m_resolver.Equals(this.m_resolver)) { return(false); } return(metadataOnlyParameterInfo.m_parameterToken.Equals(this.m_parameterToken)); }
public override ParameterInfo[] GetParameters() { unsafe { uint num; uint num1; uint num2; uint num3; uint num4; uint num5; int num6; UnusedIntPtr unusedIntPtr; if (!this.m_fullyInitialized) { this.Initialize(); } int length = (int)this.m_descriptor.Parameters.Length; ParameterInfo[] fakeParameterInfo = new ParameterInfo[length]; Type[] type = new Type[length]; for (int i = 0; i < length; i++) { type[i] = this.m_descriptor.Parameters[i].Type; } int[] numArray = new int[length + 1]; IMetadataImport rawImport = this.m_resolver.RawImport; HCORENUM hCORENUM = new HCORENUM(); if (rawImport.EnumParams(ref hCORENUM, this.m_methodDef.Value, numArray, (int)numArray.Length, out num) == 1) { for (int j = 0; j < length; j++) { fakeParameterInfo[j] = this.Resolver.Policy.GetFakeParameterInfo(this, type[j], j); } return(fakeParameterInfo); } hCORENUM.Close(rawImport); if (num == 0) { return(fakeParameterInfo); } ParameterInfo metadataOnlyParameterInfo = null; for (int k = 0; (long)k < (ulong)num; k++) { int num7 = numArray[k]; rawImport.GetParamProps(num7, out num6, out num3, null, 0, out num2, out num1, out num4, out unusedIntPtr, out num5); if (num3 != 0) { uint num8 = num3 - 1; fakeParameterInfo[num8] = new MetadataOnlyParameterInfo(this.m_resolver, new Token(num7), type[num8], this.m_descriptor.Parameters[num8].CustomModifiers); } else { metadataOnlyParameterInfo = new MetadataOnlyParameterInfo(this.m_resolver, new Token(num7), this.ReturnType, this.m_descriptor.ReturnParameter.CustomModifiers); } } if (metadataOnlyParameterInfo == null) { metadataOnlyParameterInfo = this.Resolver.Policy.GetFakeParameterInfo(this, this.ReturnType, -1); } this.m_returnParameter = metadataOnlyParameterInfo; for (int l = 0; l < length; l++) { if (fakeParameterInfo[l] == null) { fakeParameterInfo[l] = this.Resolver.Policy.GetFakeParameterInfo(this, type[l], l); } } return(fakeParameterInfo); } }