我有以下代码:Activator.CreateInstance(字符串,字符串)抛出TypeLoadException
public static void Invoke(string assemblyName, string scheduledTaskExecutorName)
{
ObjectHandle objectHandle = Activator.CreateInstance(assemblyName, scheduledTaskExecutorName);
IScheduledTaskExecutor scheduledTaskExecutor = (IScheduledTaskExecutor)objectHandle.Unwrap();
scheduledTaskExecutor.ExecuteScheduledTask();
}
我有一个叫DummyScheduledTaskExecutor
类,它看起来是这样的:
public class DummyScheduledTaskExecutor : IScheduledTaskExecutor
{
public void ExecuteScheduledTask()
{
DummyTextFile.Text = "Success!";
}
}
它驻留在其装配程序集名称(在程序集属性中定义)为Tests.WebApplication.Application.Unit
。
我对Invoke(string, string)
调用如下:
ScheduledTaskInvoker.Invoke("Tests.WebApplication.Application.Unit", "DummyScheduledTaskExecutor");
试图运行该代码只是抛出一个TypeLoadException。我是否错误地表达了程序集或类型名称,或者是其他事情正在发生?
谢谢。在文档中没有任何地方表明我需要使用命名空间。我现在有一个IOException,所以你让我感动了! – David
如果您使用的是单例类的文件输出,请确保在创建日志记录类之前使用lock(在您的class中为 James
好吧,尽管我在面前说了同样的话,但我猜你已经清楚了。我会给你一个upvote,因为当人们接受一个答案时,我不能忍受,但不要赞扬它。怎么了,@David? –