我有这段代码
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "DotNetOpenAuth.dll");
Assembly assembly = Assembly.LoadFile(path);
Type type = assembly.GetType("DotNetOpenAuth.OAuth2.UserAgentClient");
if (type != null)
{
MethodInfo methodInfo = type.GetMethod("ProcessUserAuthorization");
if (methodInfo != null)
{
object result = null;
ParameterInfo[] parameters = methodInfo.GetParameters();
object classInstance = Activator.CreateInstance(type);
if (parameters.Length == 0)
{
result = methodInfo.Invoke(classInstance, null);
}
else
{
object parametersArray = new object[] { "One", "Two" };
result = methodInfo.Invoke(methodInfo, parametersArray);
}
}
}
在线
object classInstance = Activator.CreateInstance(type);
我收到错误
system.missingMethodException而
任何人都可以帮助我调查这个问题吗?
答案 0 :(得分:1)
来自docs(请参阅“例外”部分):
找不到匹配的公共构造函数。
因此,您需要DotNetOpenAuth.OAuth2.UserAgentClient
中的公共无参数构造函数,或者您必须使用另一个CreateInstance
重载并提供参数。