无法从程序集中加载类型
Posted
技术标签:
【中文标题】无法从程序集中加载类型【英文标题】: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);
【问题讨论】:
【参考方案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);
...
【讨论】:
以上是关于无法从程序集中加载类型的主要内容,如果未能解决你的问题,请参考以下文章
Oracle .Net ManagedDataAccess 错误:无法从程序集中加载类型“OracleInternal.Common.ConfigBaseClass”
无法从程序集“System.Web,...”加载类型“...”
无法访问另一个程序集中的公共类型成员。我有两个程序集,我想从另一个程序集中的一个程序集访问公共成员
无法从程序集 PresentationFramework 加载类型“System.Windows.Controls.Primitives.MultiSelector”