我有一个使用Xamarin.Forms的移动PCL项目。在PCL中,我有各种SQLite类和一个SQLite数据库助手类(称为DBManager
)。在平台部分中,我将实例创建到数据库(因为它使用PCL中不支持的文件系统)。该实例有一个接口来获取连接字符串和连接。
平台部件的界面称为IDatabaseConnection
。
我的每个Sqlite类都有一个名为IDatabase
的接口。这允许我使用我知道的属性(如
public static List<T> GetListOfObjects<T>() where T:IDatabase, new()
{
var data = App.Singleton.DBManager.GetListOfObjects<T>();
return data.ToList();
}
我在非PCL项目中经常使用该课程,我知道这很好。
问题是我收到以下错误
The type 'T' cannot be used as type parameter 'T' in the generic type or method 'MyMobileApp.DBManager.GetListOfObjects<T>()'. There is no boxing or type parameter conversion from 'T' to 'MyMobileApp.IDatabaseConnection'
这是使用IDatabaseConnection
在非PCL部分中的DBManager,如果是,是否有解决方案以便我仍然可以使用我的通用帮助类方法?