Activator.Createinstance导致目标调用

时间:2014-05-13 19:38:15

标签: c# generics

我有一个像这样的通用方法:

    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:此时运行时拒绝评估表达式。串

我在这里缺少什么?

0 个答案:

没有答案