C#缺少程序集故障切换

C#缺少程序集故障切换,c#,.net-assembly,failover,C#,.net Assembly,Failover,所以我有一个Windows窗体应用程序,它有一些依赖于第三方商业库的高级功能。基本上,我想实现这个库的折扣版本,然后在大型商业库不可用时将其用作故障切换,这样所有功能都可以在基本应用程序中使用(如果有商业库,它看起来会更好/性能更好) 在Python中,您可以执行以下操作: try: import <dependency name> except ImportError: # The dependency is unavailable. 试试看: 进口 除恐怖外: #依

所以我有一个Windows窗体应用程序,它有一些依赖于第三方商业库的高级功能。基本上,我想实现这个库的折扣版本,然后在大型商业库不可用时将其用作故障切换,这样所有功能都可以在基本应用程序中使用(如果有商业库,它看起来会更好/性能更好)

在Python中,您可以执行以下操作:

try:
    import <dependency name>
except ImportError:
#   The dependency is unavailable.
试试看:
进口
除恐怖外:
#依赖项不可用。

C#中是否有类似的功能?我也尝试过类似的方法(将using语句包装在try/catch块中),但根本不起作用。

这取决于您所说的功能,如果是GUI组件等,则更为棘手

如果只是非可视代码和类,那么您通常可以使用接口之类的东西将功能抽象到更高的级别,然后根据需要加载相关的实现


我以前在IoC上做过类似的事情,它对我们来说非常有效。

基本上,我只希望应用程序在缺少第三方库时不会出现“是否缺少程序集或引用”的错误。我已经准备好了所有代码来处理两者之间的切换。我需要做的是在程序集丢失时让应用程序实际工作,而不必构建两个单独的二进制文件。使用接口并不是一个真正的选项(而是使用适配器/包装器模式),因为我使用的库是第三方商业库,所以即使我编写了接口,第三方库也不会实现它。