1

我正在尝试从这里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'.
4

2 回答 2

2

您的程序集/命名空间可能不正确。为避免此类错误,请尝试以下操作:

var newSearch = (diffDomain)domain.CreateInstanceAndUnwrap(
                            typeof(diffDomain).Assembly.FullName,
                            typeof(diffDomain).FullName);
于 2013-12-07T12:05:57.773 回答
0

您提出的问题不是您的真实代码,因为它有明显的语法错误。

您在问题中提出的内容也不能证明您遇到的问题,因为您排除了相关信息。

我认为您所做的是将您的类放在名称空间中。CreateInstanceAndUnwrap需要一个完全限定的名称。您链接到的示例将该类放在全局命名空间中,因此非限定名称和限定名称是相同的。它们可能不在您尝试的范围内。

于 2013-12-07T12:07:03.027 回答