我有以下代碼: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? –