コード例 #1
0
            private bool IsMethodMatchAll(MethodDefinition methodDefinition, XmlMetaModel.MethodModel model)
            {
                if (!string.IsNullOrEmpty(model.name))
                {
                    if (methodDefinition.Name != model.name)
                    {
                        return(false);
                    }
                }

                if (model.ArgCount != -1)
                {
                    if (methodDefinition.Parameters.Count != model.ArgCount)
                    {
                        return(false);
                    }
                }

                if (model.GenericArgCount != -1)
                {
                    if (methodDefinition.GenericParameters.Count != model.GenericArgCount)
                    {
                        return(false);
                    }
                }

                if (!string.IsNullOrEmpty(model.RetType))
                {
                    if (!IsMethodParameterSame(methodDefinition.ReturnType, new XmlMetaModel.ArgumentModel()
                    {
                        type = model.RetType
                    }))
                    {
                        return(false);
                    }
                }

                if (model.Args != null)
                {
                    if (methodDefinition.Parameters.Count != model.Args.Length)
                    {
                        return(false);
                    }

                    int index = 0;
                    foreach (var parameter in methodDefinition.Parameters)
                    {
                        var parameterModel = model.Args[index];
                        if (!IsMethodParameterSame(parameter.ParameterType, parameterModel))
                        {
                            return(false);
                        }
                        ++index;
                    }
                }

                return(true);
            }
コード例 #2
0
 public MethodMetaInfo(MethodDefinition methodDefinition, XmlMetaModel.MethodModel model)
 {
     MethodDefinition = methodDefinition;
     model_           = model;
 }