gpt4 book ai didi

c# - 如何模拟 ReflectionTypeLoadException?

转载 作者:行者123 更新时间:2023-11-30 22:15:34 24 4
gpt4 key购买 nike

我有一个生产用户在尝试从 Outlook 互操作程序集中获取程序集类型时收到 ReflectionTypeLoadException。我需要编写应用程序代码以更好地调试问题,但我无法重现他的问题,因此我无法测试代码以确保它能满足我的需求。

我找到了这篇文章:Error message 'Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.'它有示例代码,但我想调试它以确保它对我有用并查看它是如何工作的。

这是我抛出的代码。我已经加载了实际的程序集。当我枚举其中包含的类型时,我得到了异常:

Type t = assembly.GetTypes().Where(x => x.IsClass && x.Name.Equals("ApplicationClass")).FirstOrDefault();

任何人都可以提供示例或一些关于如何模拟此问题的见解,以便我可以验证我需要编写的代码吗?

谢谢。

最佳答案

我今天遇到了同样的问题。这是我根据过去遇到的一个案例得出的结论:

var assemblyName = new AssemblyName("TestAssembly");
var assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
var module = assemblyBuilder.DefineDynamicModule("MainModule");
var typeBuilder = module.DefineType(name: "TestType", attr: TypeAttributes.Public | TypeAttributes.Class);
// uncommenting this stops the error. Basically, GetTypes() seems to fail if the ModuleBuilder
// has an "unfinished" type
//typeBuilder.CreateType();
module.Assembly.GetTypes();

关于c# - 如何模拟 ReflectionTypeLoadException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com