【问题标题】:Cannot load type from assembly无法从程序集中加载类型
【发布时间】:2019-03-02 05:26:06
【问题描述】:

我正在研究来自MSDN MarshalByRefObject 的代码我无法弄清楚为什么这会引发异常。我在想它是否可能是 Worker 类型与类 Program 在同一个程序集中?我是否需要在 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);
        }
    }
}

【问题讨论】:

    标签: c# .net-assembly appdomain


    【解决方案1】:

    您实例化了一个不完整的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);
    
            ...
        }
    

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 1970-01-01
      • 2011-09-07
      • 2016-09-27
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 2021-05-30
      相关资源
      最近更新 更多