我有一个像这样的通用方法:
private void StartTask<T>(string car, string connectionId, string something)
{
Task.Factory.StartNew(() => (T) Activator.CreateInstance(typeof (T), car, connectionId, something))
.ContinueWith(
task =>
{
if (task.Exception != null)
new LoggerService(GetType()).Exception(task.Exception);
},
TaskContinuationOptions.OnlyOnFaulted);
}
如您所见,我需要使用Activator.CreateInstance来创建传递给泛型方法的类的实例。
我这样称呼这个方法:
StartTask<CarClass1>("Volvo", "4", "something");
StartTask<CarClass2>("Honda", "3", "something");
StartTask<CarClass3>("Nissan", "5", "something");
IIS崩溃有时。使用“调试诊断”我发现我得到了:
异常: {“调用目标抛出了异常。”} System.Exception {System.Reflection.TargetInvocationException}
内部异常: {“尝试读取或写入受保护的内存。这通常表示其他内存已损坏。”} System.Exception {System.AccessViolationException}
Stacktrace:此时运行时拒绝评估表达式。串
我在这里缺少什么?