我有一个在 .NET 3.5 下编译的异步库,因为它被 .NET 3.5 应用程序使用,但是如果有人想传入一个,我希望能够处理 .NET 4.0 CancellationTokens。为了包括 .NET 4.0东西,我必须打破与 .NET 3.5 的兼容性。到目前为止,我提出的唯一选择是只允许传入“对象”然后使用反射,但这会导致丑陋的公共接口......我想确保客户端代码传入正确编译时的对象类型,而不是运行时。
有什么方法可以在编译时绑定 .NET 4.0 对象,而不会对消费者应用程序引入不必要的依赖?说“如果有就使用这个功能,如果没有就跳过它”?