Beispiel #1
0
            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);
            }
Beispiel #2
0
 public void Add(XmlMetaModel.MethodModel model)
 {
     models_.Add(model);
     CheckIsSingleModel();
 }