No hay ninguna incorporada, pero puede suministrar la suya.
Para este escenario específico, es posible que desee encapsular la lógica en (por ejemplo) una clase contenedora (bloqueo), para que no tenga #if
dispersos por todo el código; por supuesto, si solo estás haciendo un pequeño bloqueo, puede que no valga la pena.
Utilizo diferentes configuraciones y/o proyectos para construir para una variedad de plataformas - es decir, protobuf-net compilaciones para .NET 2.0, .NET 3.0, mono, CF 2.0, CF 3.5 utilizando este truco. El código tiene #if
bloques basado en diferentes símbolos para control lógico - por lo que, por ejemplo, BinaryFormatter
no está disponible en CF, WCF
sólo está disponible con .NET 3.0, Delegate.CreateDelegate
no está en CF 2.0, etc.
Tenga en cuenta que IIRC esto solo se aplica a * regular * 3.5, no CF 3.5 - es posible que desee nombrar los símbolos en consecuencia. –