Conditional Compilation Symbols
In section IDE Setup for ALox for C# we have learned about some conditional compilation symbols already. The following gives the complete list of such symbols introduced by ALox for C#:
- ALIB_IDE_VSTUDIO
Enables code that supports compiling/running ALib in development environment Microsoft Visual Studio.
- ALIB_IDE_RIDER
Enables code that supports compiling/running ALib in development environment JetBrains Rider.
- ALIB_IDE_MONODEVELOP
Enables code that supports compiling/running ALib in development environment MonoDevelop.
- ALOX_DBG_LOG
Symbol to enable debug logging. This should be set only in the debug configuration of ALox enabled projects. If not set, no debug log output is generated, i.e. all invocations of methods of class Log are pruned.
- ALOX_REL_LOG
Symbol to enable release logging. This should be set in debug and release configurations of projects that are supposed to use ALox for release log output. If you do not use release logging features of ALox, not setting this symbol minimizes the code footprint of the ALox classes that are added to your executables.
- ALOX_WP71
To compile ALox for Windows Phone 7.1 projects. This should be set in the Debug and Release configuration of your projects Windows Phone 7.1 projects. In addition to some compatibility changes in the code, this symbol also activates ALOX_NO_REFLECTION, hence the LogTools.Instance method is not available in Windows Phone projects. (This is due to security restrictions in the Windows Phone system architecture).
- ALOX_WP8
To compile ALox for Windows Phone 8 projects. This should be set in the Debug and Release configuration of your projects Windows Phone 8.x projects. In addition to some compatibility changes in the code, this symbol also activates ALOX_NO_REFLECTION, hence the LogTools.Instance method is not available in Windows Phone projects. (This is due to security restrictions in the Windows Phone system architecture).
- ALOX_NO_REFLECTION
This symbol deactivates the use of reflection in class LogTools. This is useful for target platforms that do not allow instance inspection using reflection techniques. The method LogTools.Instance will be available but just convert your object into readable text using ToString().
- ALOX_NO_XML
This symbol deactivates the use of System.Xml.Linq library in class LogTools. This is useful for target platforms that do not support this library. The method LogTools.XML will not be available however.