public CallableSignature GetSignature() { if (_signature == null) { CallableSignature definitionSignature = _definition.GetSignature(); IParameter[] parameters = Array.ConvertAll <IParameter, IParameter>( definitionSignature.Parameters, delegate(IParameter p) { return(new MappedParameter(_typeSystemServices, (ExternalParameter)p, this)); }); _signature = new CallableSignature(parameters, MapType(definitionSignature.ReturnType)); } return(_signature); }