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

时间:2013-07-08 13:07:28

标签: c# dynamic dll reference compilation

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

这种方法确实是" smells。"首先,不,你不能忽视这样的错误。

有很多方法会更合理。仅举几例:使用dynamic,dll1和dll2中的classname派生自相同的基类或使用类似MEF的内容实现相同的接口。

其中一些可能对你的解决方案有些过分。我只是想知道你是否可能会问我们如何解决症状,而不是向我们寻求帮助解决问题的实际根本原因。

答案 2 :(得分:0)

这是不可能的,因为即使该类在A.dll和B.dll中具有相同的名称,它仍然不是同一个类。所以,即使你以某种方式设法编译它,并切换出dll,程序仍然可能会崩溃。

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