c#强制编译有错误的程序,忽略错误

本文关键字:错误 程序 编译 有错误 | 更新日期: 2023-09-27 18:21:41

我想知道是否有办法强制ms vs 2010 c#编译我制作的程序,因为我有两个同名的dll要使用,使用程序集解析,我可以交换另一个,但问题是两个dll都有不同的方法,根据我给定的级别,它将执行dll的唯一方法。我可以使用动态类型,但有没有其他方法可以告诉msvs2010在出现错误时强制编译?

假设dll1有方法A,dll2有方法B,当编码时,我说if(condition) classname.A else classname.B,但只引用dll1,使用classname.B是一个错误。那么我该如何强制编译它呢?还是继续使用动态类型?

c#强制编译有错误的程序,忽略错误

不,不能强制编译有错误的代码。某种动态方法是您唯一的方法,例如反射或dynamic关键字。

这种方法真的很"好闻"。首先,不,你不能忽视这样的错误。

有很多方法会更合理。仅举几个例子:使用dynamic,在dll1和dll2中都有classname派生自同一基类,或者使用类似MEF的东西实现同一接口。

其中一些可能对您的解决方案来说有些过头了。我只是想知道,也许你是在问我们如何解决症状,而不是向我们寻求解决问题实际根本原因的帮助。

这是不可能的,因为即使类在A.dll和B.dll中具有相同的名称,它仍然不是同一个类。因此,即使你设法编译了它,并关闭了dll,程序仍然可能崩溃。

正如其他人所说,使用动态或反射。