Jim*_*H44 0 c# mono conditional-compilation
在C#dotNET for Mono中,有更简单的方法吗?
#if __MonoCS__
public static SqliteConnection NewConnection
#else
public static SQLiteConnection NewConnection
#endif
Run Code Online (Sandbox Code Playgroud)
在CI中可以#if然后#define something,#else并将其定义为其他内容.
我知道C#预处理器不允许我想要的东西,但有没有更简单的方法来处理SQLite for Windows和Linux之间的差异?
谢谢,
吉姆
感谢那些回答的人.
依赖于SQLite的文件现在包含这样的语句:
#if __MonoCS__
using Mono.Data.Sqlite;
using SQLiteCommand = Mono.Data.Sqlite.SqliteCommand;
using SQLiteConnection = Mono.Data.Sqlite.SqliteConnection;
using SQLiteException = Mono.Data.Sqlite.SqliteException;
using SQLiteParameter = Mono.Data.Sqlite.SqliteParameter;
using SQLiteTransaction = Mono.Data.Sqlite.SqliteTransaction;
#else
using System.Data.SQLite;
#endif
Run Code Online (Sandbox Code Playgroud)
在CI中,将所有内容放在.h文件中,并在需要的地方#include它.有没有办法在Mono C#项目中做到这一点?我没有尝试过任何工作.
吉姆,再次感谢
Jon*_*eet 10
好吧,你可以使用using alias指令:
#if __MonoCS__
using SQLiteConnection = Foo.Bar.SqliteConnection;
#endif
Run Code Online (Sandbox Code Playgroud)
然后,您可以SQLiteConnection在同一文件中的任何位置使用.
您可能希望使用适配器模式将它放在一段代码中,因此所有其余代码都可以使用相同的方式.