找出MissingMethodException目标对象的类型

时间:2019-03-07 07:49:25

标签: c# asynchronous exception

我正在异步加载一些数据。加载的数据不是任何特定类型,但需要无参数构造函数。现在我忘记了它和

  

没有为此对象定义无参数的构造函数。

例外被抓住。问题是我不知道什么是“ 此对象”?在当前情况下,我知道类型是什么,因为我刚刚添加了它,但是在这里看到了将来的问题。 如何找出导致问题的对象类型?我应该在调用Activator.CreateInstance()之前先检查构造函数并抛出自己的异常吗?这似乎是对同一件事的仔细检查,我想避免这样做。

1 个答案:

答案 0 :(得分:1)

  

我应该先检查构造函数并在调用Activator.CreateInstance()之前抛出我自己的异常吗?

呼叫Activator.CreateInstance需要一种类型。您是否有任何特定原因无法使用这种解决方案?

public object Create(Type type)
{
    try
    {
        return Activator.CreateInstance(type);
    }
    catch (MissingMethodException e)
    {
        Console.WriteLine($"Gotcha! Type: {type}");
        // or whatever handling, eg. rethrow with type included:
        throw new MyException(type, e);
    }
}
相关问题