Поддержка новых функций .NET Framework в библиотеке, используемой в более старой версии Framework. - PullRequest
1 голос
/ 11 января 2012

У меня есть асинхронная библиотека, которая скомпилирована в .NET 3.5, поскольку она используется приложениями .NET 3.5, но я хочу иметь возможность иметь дело с .NET 4.0 CancellationTokens, если кто-то хочет передать ее. .NET 4.0 вещи, я должен сломать совместимость с .NET 3.5. Единственный вариант, который я до сих пор придумал, - это разрешить передачу «объекта» и затем использовать отражение, но это создает уродливый общедоступный интерфейс ... Я хочу убедиться, что клиентский код передается в правильном тип объекта во время компиляции, а не во время выполнения.

Есть ли способ связываться с объектами .NET 4.0 во время компиляции, не создавая ненужную зависимость от пользовательских приложений? Сказать «использовать эту функцию, если она есть, и пропустить, если ее нет»?

1 Ответ

1 голос
/ 11 января 2012

У вас могут быть открытые интерфейсы, для которых требуются типы .NET 4.0 в отдельной сборке, возможно, в качестве методов расширения - и при необходимости (например, взаимодействие между типами .NET 4 и внутренними объектами ваших типов в основной сборке). Вы можете определить интерфейс в своей основной сборке (.NET 3.5) и реализовать его в сборке .NET 4 с помощью обертки вокруг типа .NET 4, чтобы полностью избежать отражения.

...