首页 > 解决方案 > 如何使用反射调用具有 0 个参数的非公共方法?

问题描述

我的班级有两种方法,如下所示:

void Update()
void Update(string)

通过反射,我想调用顶部的,但是当我尝试这个时:

            const BindingFlags findFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;

            var methodInfo = script.GetType().GetMethod(methodName, findFlags);

我得到一个AmbiguousMatchException. 如何调用无参数方法?

标签: c#reflection

解决方案


这是你如何做到的:

            var methodInfo = script.GetType().GetMethod("Update", findFlags, null, new Type[] { }, null);

推荐阅读