- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的测试机器上有一个非常奇怪的错误。错误是:
System.TypeLoadException:程序集“ActiveViewers (...)”中类型“DummyItem”中的方法“SetShort”没有实现。
我只是不明白为什么。 SetShort
位于 DummyItem
类中,我什至重新编译了一个写入事件日志的版本,以确保这不是部署/版本控制问题。奇怪的是调用代码甚至没有调用 SetShort
方法。
最佳答案
注意 - 如果此答案对您没有帮助,请花时间向下滚动浏览此后人们添加的其他答案。
简答
如果您将方法添加到一个程序集中的接口(interface),然后添加到另一个程序集中的实现类,但您重建了实现程序集而不引用接口(interface)程序集的新版本,就会发生这种情况。
在这种情况下,DummyItem 实现来自另一个程序集的接口(interface)。 SetShort 方法最近被添加到接口(interface)和 DummyItem - 但包含 DummyItem 的程序集是引用以前版本的接口(interface)程序集重建的。所以 SetShort 方法在那里有效,但没有将它链接到接口(interface)中等效方法的神奇酱料。
长答案
如果你想尝试重现这个,请尝试以下操作:
创建一个类库项目:InterfaceDef,只添加一个类,然后构建:
public interface IInterface
{
string GetString(string key);
//short GetShort(string key);
}
创建第二个类库项目:实现(使用单独的解决方案),将 InterfaceDef.dll 复制到项目目录并添加为文件引用,仅添加一个类,然后构建:
public class ImplementingClass : IInterface
{
#region IInterface Members
public string GetString(string key)
{
return "hello world";
}
//public short GetShort(string key)
//{
// return 1;
//}
#endregion
}
创建第三个控制台项目:ClientCode,将两个 dll 复制到项目目录中,添加文件引用,并将以下代码添加到 Main 方法中:
IInterface test = new ImplementingClass();
string s = test.GetString("dummykey");
Console.WriteLine(s);
Console.ReadKey();
运行一次代码,控制台显示“hello world”
取消注释两个 dll 项目中的代码并重建 - 将两个 dll 复制回 ClientCode 项目,重建并再次尝试运行。尝试实例化 ImplementingClass 时发生 TypeLoadException。
关于c# - TypeLoadException 说 'no implementation' ,但它已实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133782/
我尝试实现 azure 函数,但不断收到以下异常。 "TypeLoadException: Could not load type 'System.UriTemplate' from assemb
通过这个代码 module ObjectRe = type BM = A | N type Object = { Name: string Pattern: BM array
我正在编写一个 .NET 命令行应用程序,它将用户从现有数据库迁移到 aspnetdb。为了简化特定于用户的设置,我使用了 Joel Spolsky 撰写的关于 here 的配置文件类. 它在 ASP
我正在使用 Compact Framework 3.5/VS2008。我的 TypeLoadException 行为非常奇怪。以下代码抛出此错误。原因是数据库连接有问题。但是由于某些未知原因,此内部异
在我正在开发的一个简单应用程序中,我有三个相关的程序集: “MyCompany.Geography.Windows.Forms”,这是一个类库,其中包含 winforms 控件 “MyCompany.
所以我尝试将依赖项加载到我的代码中,然后我得到: TypeLoadException: Could not load type 'System.Data.SqlClient.SqlConnection
以下代码在 VS2013 和 VS2015 中编译,适用于从 2.0 到 4.6.1 的各种 .NET Framework 版本,但在执行时抛出 System.TypeLoadException: n
11 月 7 日 10:29 MST 更新 奇怪的是,如果我将属性从 ComponentModel 文件夹中移回 Common 项目的根目录,代码就可以正常工作。在为 InflowHealth.Com
这有点啰嗦,所以这里是快速版本: 为什么这会导致运行时 TypeLoadException?(编译器应该阻止我这样做吗?) interface I { void Foo(); } class
我正在编写一个 .NET 3.5 应用程序 (WinForms),它使用外部 DLL 中的类,并且每次应用程序尝试启动时我都会收到 System.TypeLoadException。 这是 VS 显示
一些背景知识:我最近从源代码 (https://github.com/ServiceStack/ServiceStack) 重新编译了 ServiceStack 库。在完成一些错误修复后,我还重新编译
当我尝试启动我的单元测试时,出现一个错误窗口: System.TypeLoadException: Method 'get_SolutionDirectory' in type 'JetBrains.
我在 Windows 应用商店应用程序中使用 Winmd(Windows 运行时组件)。当我尝试实例化在 winmd 中定义的类型时,出现以下异常: System.TypeLoadException
你能告诉我解决 System.TypeLoadException 问题的方法吗? 我的解决方案中的现有项目存在此异常,我从同一解决方案中的单元测试项目中引用了该项目。 当我运行我的单元测试时抛出这个异
我正在尝试使用以下代码将我的 Web API 连接到 MySql 数据库: public class Startup { public void ConfigureServices
我目前正在为我的公司管理一个 ASP.NET 应用程序。最近,当我尝试调试代码时遇到了 System.TypeLoadException。 确切的信息是: Inheritance security r
我在使用强类型集线器时遇到 TypeLoadException。我的界面是: public interface IClientCallback { void callback(T msg, s
我正在使用 VS2008 使用 C# 开发一个适用于 Honeywell Dolphin 6100 的应用程序,这是一款带有条码扫描器的移动数据终端,使用类似操作系统的 Windows CE 5.0。
你能否创建一个 .NET 4 版本的应用程序进行测试是老板们无辜的问题——当然! 但是在我将 Winforms 应用程序中的 27 个项目更改为 .NET 4 并重新编译后,在启动应用程序时,我得到了
在我们的 Azure 云服务中,我们使用 Mvc、WebApi 和 Autofac。 Mvc 和 WebApi 需要 System.Web.Http 版本5.2.3 Autofac.WebApi2想要
我是一名优秀的程序员,十分优秀!