不能加载类型为(UserType). assemblyqualifiedname的程序集
本文关键字:assemblyqualifiedname 程序集 UserType 加载 类型 不能 | 更新日期: 2023-09-27 18:01:24
我在程序集MyUserType.dll
中创建了一个类Address
。我想在控制台应用程序中加载它。我尝试了下面的代码,但是失败了:
//cfg.AddAssembly(typeof(Address).AssemblyQualifiedName);
但是当我尝试使用其他加载程序集方法时,它成功了。
cfg.AddAssembly(Assembly.GetAssembly(typeof(Address)));
cfg.AddAssembly("MyUserType");
失败的消息是:
消息= "无法加载文件或程序集"。地址,订购。Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'或其依赖项之一。给定的程序集名称或代码库无效。(来自HRESULT: 0x80131047的异常)"
为什么?
类Ordering.Data.Address
有一个对程序集的引用,该程序集与库MyUserType.dll
不在同一目录中。确保所有引用的程序集都在System32文件夹、GAC或与库相同的目录中。
类型。AssemblyQualifiedName返回类型的限定名,因为它返回与包含程序集的FullName连接的类型的FullName。你好像要把它传进大会。加载或类似,因此显然失败,因为这不是有效的程序集名称。
要使用AssemblyQualifiedName,您需要将其传递给类似于静态Type.GetType(string)方法的东西,该方法将正确解析它。