2013-07-08 71 views
0

我想知道如果有一种方法来强制MS VS 2010的C#编译我制作的节目,因为我有2个DLL文件具有相同名称与使用,使用汇编解决我能够互换等,但事情是两个DLL有不同的方法,并根据我给它会执行独特的方法的dll有水平。我可以使用动态类型,但有什么其他方式可以告诉MS vs 2010在发生错误时强制编译?C#力编译有错误的程序,忽略错误

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

+1

你有什么期望编译器,当你告诉它来编译的东西,它不明白吗? –

回答

1

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

0

这种做法真是 “smells”。首先,不,你不能忽视那样的错误。

有这么多的方法,这将是比较合理的。仅举几例:使用dynamic,有两个DLL1 classname和DLL 2来自同一个基类派生或实现相同的接口,使用类似MEF

其中一些可能是矫枉过正的解决方案。我只是想知道,也许你问我们如何解决的症状,而不是问我们这个问题的实际根源的帮助。

0

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

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