Directivas de preprocesador en diferentes archivos en C #

Sé que puedo usar directivas de preprocesador enC# para habilitar / deshabilitar la compilación de alguna parte del código.

Si defino una directiva en el mismo archivo, funciona bien:

#define LINQ_ENABLED
using System;
using System.Collections.Generic;

#if  LINQ_ENABLED
using System.Linq;      
#endif

Ahora estoy acostumbradoC++ al poner todas estas directivas de configuración dentro de un único archivo de encabezado, e incluirlo en todos los archivos donde necesito dichas directivas.

Si hago lo mismo enC# algo no funciona:

//Config.cs
#define LINQ_ENABLED

//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;

#if  LINQ_ENABLED
using System.Linq;      
#endif

También probé lo siguiente, pero parece que no puedo definir una directiva dentro de un espacio de nombres:

//Config.cs
namespace Conf{
#define LINQ_ENABLED
}

//MyClass.cs
#define LINQ_ENABLED
using System;
using System.Collections.Generic;
using Conf;
#if  LINQ_ENABLED
using System.Linq;      
#endif
¿Qué estoy haciendo mal?¿Cuál es la forma correcta de utilizar el preprocesador en diferentes archivos enC#?¿Hay alguna manera mejor de hacerlo?

Respuestas a la pregunta(4)

Su respuesta a la pregunta