问题标签 [typeloadexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1214 浏览

c# - “System.TypeLoadException:内部限制:字段太多。” 具有大型静态数据结构

我有一个带有静态类的小型 C# 库,其中包含一个非常大但简单的四维字节数组,表示多维决策表(总共约 90K 字节)。

那里还有另一个值得注意的数据结构,一个字典,它有助于索引到决策表的第一维。

这个决策表是一个静态私有数据成员,由数组静态初始化器初始化。代码是在带有 T4 的 Visual Studio 2010 中从 Excel 文档生成的。

决策是通过索引到多维数组的静态方法获得的。

当我使用这个库运行一个简单的测试应用程序时,它会出现“System.TypeLoadException:内部限制:字段太多”。例外,在第一次调用静态决策方法时。

Stackoverflow 上的一个远程相关主题提到了具有“太多符号”的库。我可能错了,但我的图书馆似乎确实很少有符号。

这里发生了什么?

代码片段:

...等等...

0 投票
3 回答
322 浏览

c# - 使用具有代码访问安全性的 C# 迭代器方法时出现问题

我有一个使用迭代器块返回的简单方法IEnumerable<T>

通常,此方法工作正常,但如果我将[SecurityCritical]属性应用到程序集(或包含上述方法的类),它会TypeLoadException在尝试调用该方法时抛出 a。无法加载的类型是编译器生成的与迭代器方法相对应的类,它GetEnumerator是导致问题的方法,因为它是安全透明的。

为了比较,如果我修改上述方法以填充并返回 a List<MyItem>,一切正常。

有什么建议么?

谢谢,

蒂姆。

0 投票
2 回答
6688 浏览

c# - ReflectionTypeLoadException:类型正在尝试实现一个不可访问的接口

我正在使用Assembly.GetTypes()获取插件库中定义的所有类型(因此我可以实例化插件实例)。

在特定库上,该方法引发 ReflectionTypeLoadException,表示:

谷歌搜索似乎是因为特定的Type实现了一个非公共接口。实际上是这样,但是Type嵌套在另一个公共类中,声明为私有。

如何避免这个异常?

……

使接口公开代码有效。是否可以将这种奇怪的行为定义为错误(在 Assembly.GetTypes() 中)?这意味着库类型不能实现受保护的接口!

0 投票
6 回答
5497 浏览

.net - 关于 TypeLoadException 的帮助

我正在编写一个 .NET 3.5 应用程序 (WinForms),它使用来自外部 DLL 的类,并且System.TypeLoadException每次应用程序尝试启动时我都会收到一个。
这是VS显示的异常:

这是我正在运行的代码:



让我吃惊的是,VS2010 Debugger 在App.Initialize()没有进入Initialize函数的情况下就停在了线上。

但是,如果我在函数中注释掉对外部 DLL 的所有引用Initialize,则应用程序会正确初始化。


阅读后,我意识到许多报告此错误的人在他们的项目上使用不同的构建(如从 x86 应用程序引用的 x64 DLL)。因此,我更改了构建配置,因此 DLL 和应用程序都是 x86,但我仍然拥有TypeLoadException.

有什么我想念的吗?

0 投票
1 回答
459 浏览

com - RegAsm:来自程序集“A”的“MyAlgorithms.MyAlgorithm”类型中的方法“LoadContent”没有实现

我有以下类型(见下面的代码部分)。它已编译但 RegAsm 给出以下错误:“来自程序集 'A' 的 'MyAlgorithms.MyAlgorithm' 类型中的方法 'LoadContent' 没有实现。”

知道为什么吗?如果我不实现 LoadContent() 方法,它将不会被编译。

我在这里看到了一个几乎相同的问题: TypeLoadException 说“没有实现”,但它已实现 但没有帮助,因为:

A、B、C项目在同一个解决方案中,构建顺序为C、B、A。

所有项目的“构建后事件命令行”包含以下几行:

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" /u $(TargetPath)
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe" $(TargetPath)
"c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /u $(TargetName)
"c:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /if $(目标路径)

所以我认为项目 A 指的是正确的程序集。

如果我将下一个添加到 MyAlgorithmBase 类中,为什么会解决问题:

protected override void LoadContent(PersistenceReader reader) { }

谢谢!

凯特

0 投票
1 回答
747 浏览

c# - GetTypes() 和 TypeLoadException 错误

有没有办法只返回加载程序集中的类型,而不是让它寻找嵌套的类型,这样就不会发生错误 TypeLoadException?

foreach (var type in _assembly.GetTypes().Where(type => type.IsClass))

0 投票
2 回答
6900 浏览

wcf - WcfSVCHost 遇到严重错误,必须退出。这可能是由无效的配置文件引起的

我如何循环通过 LoaderExceptions 属性来查看发生了什么错误,因为它没有命中任何服务,并在它运行任何代码之前给我这个错误?

谢谢

0 投票
3 回答
4257 浏览

moq - 尝试使用 Moq 模拟 IObjectSet 时出现 TypeLoadException

我有以下设置代码:

whereDummy是一个空的类定义,并且dummy是一个Dummy. MockOf<T>()是基类上的一个模拟管理功能,它基本上确保每次在一个类型上调用它时,它都会返回相同的模拟实例。

包含此设置代码的测试失败,TypeLoadException并显示以下消息:

System.TypeLoadException:来自程序集 'DynamicProxyGenAssembly2,Version=0.0.0.0,Culture=neutral,PublicKeyToken=a621a9e7e5c32e69' 的类型 'IObjectSet`1Proxy389e220f10aa4d9281d0b9e136edc1d4' 正在尝试实现无法访问的接口。

在 System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule module, Int32 tk, ObjectHandleOnStack type)
在 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
在 System.Reflection.Emit.TypeBuilder.CreateType()
在 Castle.DynamicProxy.Generators .Emitters.AbstractTypeEmitter.BuildType()
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(Type proxyTargetType, Type[] interfaces, ProxyGenerationOptions options)
at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, IInterceptor[] 拦截器)
在 Moq.Mock 1.InitializeInstance() 在 Moq.Mock`1.get_Object()1.<InitializeInstance>b__0()
at Moq.Mock


在 RepositoryTest.cs 中的 OddEnds.Tests.Data.EntityFramework.RepositoryTest.Delete_DeletesObjectFromObjectSet():第 43 行

System.Data.Objects在测试项目和被测试类所在的项目中都导入并引用了 System.Data.Entity.dll 和 Microsoft.Data.Entity.CTP.dll。构建成功,没有错误、警告或消息(除了一些与代码合同相关的...)

我该如何解决?

0 投票
0 回答
826 浏览

compact-framework - .NET Compact 应用程序在不通过调试器运行时抛出 TypeLoadException

如果我使用 ConmanClient 运行我的 .NET Compact 应用程序,一切正常。但是,如果我尝试通过直接从 shell 执行应用程序来运行我的应用程序,它会抛出 TypeLoadException(出现一个窗口,显示此内容而没有任何其他信息)。我使用 .NET Compact 3.5 和 Windows CE 6.0 R2。

0 投票
1 回答
1372 浏览

c# - 零星的“来自程序集的类型中的方法 'get_Session' 没有实现”

突然间,我开发的 Web 应用程序开始向用户提供此错误消息,但不是对我,而且只是有时。

我知道这个错误可能是由接口程序集和实现程序集参考版本不匹配引起的。但是我很长时间没有更新夏普的版本(这个项目仍然使用很旧的版本)。此外,错误并不总是发生,如果是错误的程序集,我想它总是会失败。

可能是什么原因?框架中是否有任何跟踪/登录工具可以查找?

这是 SafeSessionStorage。它是 SharpArch 的稍作修改的版本,以支持在后台线程中运行。

这是发生错误的地方:

这里 InitSession 需要 ISessionStorage 并通过 SafeSessionStorage,所以我想这就是类型检查失败的地方。我会怀疑程序集版本,但正如我所说,它总是对我有用,有时也对用户有用。