我有很多小项目,每个项目都依赖于各种外部dll.供应商错误修复了这些dll,导致我的程序范围有所变化,因为修复并不总是适用于其他程序.虽然我知道一些方法来解决这个问题.ea将dll保存在lib文件夹中或使用Nuget.但是,保持通用包装代码仍然很麻烦.
所以我想在visual studio中有一些方法,所以我们可以写这样的包装器:
[Rongten.dll = 1.5+] // 1.5 and above versions
Public string[] ExtendedInfo()
{ return this.api.ExtendedInfo }
[Rongten.dll = 1.2] //only a specific version
Public string[] ExtendedInfo()
{String[] t = new string[1];
t = "not available";
return t;
}
[Rongten.dll = 1.1-] //below a specific version
Public string ExtendedInfo()
{
t = "not available";
return t;
}
Run Code Online (Sandbox Code Playgroud)
所以一些方括号方法[允许dll版本]或类似的东西,可能是一个插件.
不,基本上。您必须查询在运行时发现的库版本(通过 API 或检查文件元数据),并在switch方法内部执行类似 a 的操作。通常您只需要执行一次;您可以通过静态字段和“惰性”加载来完成此操作,或者您可以将版本查询放入静态初始值设定项中。