0
我只是每次都得到一個錯誤,我運行此代碼:誤差CreateInstanceAndUnwrap
AppDomain newDomain = AppDomain.CreateDomain("newDomain");
AssemblyName assemblyName = AssemblyName.GetAssemblyName(path);
Command cmd = (Command)newDomain.CreateInstanceAndUnwrap(assemblyName.FullName, typename);
cmd.Execute();
哪裏path
是DLL的路徑和typename
是「NWT_Projekt.TestClass」
我的命令類:
using System;
namespace NWT_Projekt
{
public interface Command
{
void Execute();
}
}
,這是該DLL的源代碼
using System;
using System.Collections;
using System.Xml;
using System.IO;
using System.Windows.Forms;
namespace NWT_Projekt
{
public class TestClass : NWT_Projekt.Command
{
public MainForm f;
public TestClass()
{
f = Form.ActiveForm as MainForm;
}
public void Execute()
{
//do something
}
}
}
ERROR(谷歌譯者:d)
一種類型「System.Runtime.Serialization.SerializationException的異常「發生在NWT PRojekt.exe。
其他信息:彙編 '腳本的類型「NWT_Projekt.TestClass,版本= 0.0.0.0,文化=中性公鑰=空' 未標記爲可序列
EDIT2:
隨着[Serializable]它現在有效,但是在我運行代碼一次後,我想創建第二個dll,它給了我一個IO錯誤,因爲這個文件正在使用中! 我該如何解決這個問題?
你能後你得到確切的錯誤? –
好吧,我把它添加到帖子! – coolerfarmer
'TestClass'需要是'[Serializable]'以跨越應用程序邊界。見[這個答案](http://stackoverflow.com/a/7047153/464709)。 –