public CliParameterMemberDictionary(_ICliManager manager, uint methodIndex, ICliMetadataRoot metadataRoot, TParent parent, int dropoff = 0) { this.manager = manager; this.parent = parent; var method = metadataRoot.TableStream.MethodDefinitionTable[(int)methodIndex]; this.signature = method.Signature; bool skipFirst = false; if (method.Parameters.Count > 0 && method.Parameters[0].Sequence == 0) { skipFirst = true; } if (dropoff != 0) { if (skipFirst) { this.Initialize(method.Parameters.Skip(1).Drop(dropoff).ToArray()); } else { this.Initialize(method.Parameters.Drop(dropoff).ToArray()); } } else if (skipFirst) { this.Initialize(method.Parameters.Skip(1).ToArray()); } else { this.Initialize(method.Parameters); } }
public CliSignatureTypeCollection(_ICliManager manager, ICliMetadataMethodSignature signature, IType activeType, IMethodSignatureMember activeMethod) { if (manager == null) { throw new ArgumentNullException("manager"); } if (signature == null) { throw new ArgumentNullException("signature"); } this.manager = manager; this.signatureTypes = new IType[signature.Parameters.Count]; this.ActiveType = activeType; this.ActiveMethod = activeMethod; this.signature = signature; }
internal CliMetadataFunctionPointerTypeSignature(ICliMetadataMethodSignature signature) { this.Signature = signature; }