我正在尝试将此处http://msdn.microsoft.com/en-us/library/System.MarshalByRefObject(v=vs.110).aspx的示例1版本实现到我的代码中。
我的目标是使用某些方法创建一个类,然后将该类加载到不同的appdomain中并调用其方法。
到目前为止,我有: public class diffDomain : MarshalByRefObject
{
public int getNumber()
{
return 5;
}
}
internal static class JITCompiler
{
internal static wantNumber()
{
AppDomain domain = AppDomain.CreateDomain("MyDomain");
var newSearch = (diffDomain)domain.CreateInstanceAndUnwrap(
Assembly.GetExecutingAssembly().FullName,
"diffDomain");
}
}
我在Var newSearch线上收到错误:
Could not load type 'diffDomain' from assembly 'SVM, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
答案 0 :(得分:2)
您的程序集/命名空间可能不正确。为避免此类错误,请尝试以下操作:
var newSearch = (diffDomain)domain.CreateInstanceAndUnwrap(
typeof(diffDomain).Assembly.FullName,
typeof(diffDomain).FullName);
答案 1 :(得分:0)
您提出的问题不是您的真实代码,因为它有明显的语法错误。
您提出的问题也没有证明您遇到的问题,因为您排除了相关信息。
我认为你所做的就是将你的类放在命名空间中。 CreateInstanceAndUnwrap
需要一个完全限定的名称。您链接的示例将类放在全局命名空间中,因此非限定名称和限定名称是相同的。他们可能不在你正在尝试的事情中。