我正在异步加载一些数据。加载的数据不是任何特定类型,但需要无参数构造函数。现在我忘记了它和
没有为此对象定义无参数的构造函数。
例外被抓住。问题是我不知道什么是“ 此对象”?在当前情况下,我知道类型是什么,因为我刚刚添加了它,但是在这里看到了将来的问题。
如何找出导致问题的对象类型?我应该在调用Activator.CreateInstance()
之前先检查构造函数并抛出自己的异常吗?这似乎是对同一件事的仔细检查,我想避免这样做。
答案 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);
}
}