Там нет встроенного, но вы можете поставить свой собственный.
Для этого конкретного сценария вы можете инкапсулировать логику в (например) класс-оболочку (блокировку), чтобы у вас не было #if
разбросанного по всему коду; конечно, если вы делаете небольшую блокировку, это может не стоить хлопот.
Я использую различные конфигурации и / или проекты для сборки на различных платформах - то есть protobuf-net сборки для .NET 2.0, .NET 3.0, моно, CF 2.0, CF 3.5, используя этот прием В коде есть блоки #if
, основанные на разных символах для управления логикой - так, например, BinaryFormatter
недоступен для CF, WCF
доступен только для .NET 3.0, Delegate.CreateDelegate
не для CF 2.0 и т. д.