代码之家  ›  专栏  ›  技术社区  ›  Ronald Abellano

无法从程序集加载类型

  •  0
  • Ronald Abellano  · 技术社区  · 7 年前

    MSDN MarshalByRefObject 我不明白为什么会抛出异常。我在想是否工人类型与类程序在同一程序集中?我是否需要在GAC中安装此程序集,尽管我正在Visual Studio 2017编辑器中以调试模式运行此程序集。我不太了解如何使用汇编。

    using System;
    using System.Reflection;
    
    namespace AppDomainMarshalByRefObject
    {
    
        public class Program
        {
            public static void Main(string[] args)
            {
                Worker localWorker = new Worker();
                localWorker.PrintDomain();
    
                AppDomain ad = AppDomain.CreateDomain("New domain");
                Worker remoteWokrer = (Worker)ad.CreateInstanceAndUnwrap(typeof(Worker).Assembly.FullName, "Worker");
    
                remoteWokrer.PrintDomain();
                Console.ReadKey();
            }
        }
    
        public class Worker : MarshalByRefObject
        {
            public void PrintDomain()
            {
                Console.WriteLine("Object is executing in AppDomain \"{0}\"",
                AppDomain.CurrentDomain.FriendlyName);
            }
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Ehsan Mohammadi    7 年前

    typename . 将此添加到您的代码中:

    public static void Main(string[] args)
        {
            ...
    
            var typeName = typeof(Worker);
    
            AppDomain ad = AppDomain.CreateDomain("New domain");
            Worker remoteWokrer = (Worker)ad.CreateInstanceAndUnwrap(typeof(Worker).Assembly.FullName, typeName.FullName);
    
            ...
        }