private bool IsMethodMatch(XmlMetaModel.MethodModel model, IMethodSymbol symbol) { if (model.name != symbol.Name) { return(false); } if (model.ArgCount != -1) { if (symbol.Parameters.Length != model.ArgCount) { return(false); } } if (model.GenericArgCount != -1) { if (symbol.TypeArguments.Length != model.GenericArgCount) { return(false); } } if (!string.IsNullOrEmpty(model.RetType)) { if (!IsTypeMatch(symbol.ReturnType, model.RetType)) { return(false); } } if (model.Args != null) { if (symbol.Parameters.Length != model.Args.Length) { return(false); } int index = 0; foreach (var parameter in symbol.Parameters) { var parameterModel = model.Args[index]; if (!IsTypeMatch(parameter.Type, parameterModel.type)) { return(false); } ++index; } } return(true); }
public void Add(XmlMetaModel.MethodModel model) { models_.Add(model); CheckIsSingleModel(); }