2015-01-11 4 views
2

I имеет статический класс с родовым аргумент, который объявлен как это:Вызов статического метода от общего типа

public static partial class CMSLib<TUser> where TUser : CMSLib<TUser>.UserBase 
{ 
    public abstract class UserBase : OrmObject<TUser> 
    { 
     public UInt32 Id { get; set; } 
     public string Login { get; set; } 
     /* etc. */ 
    } 
} 

OrmObject объявлен как это:

public abstract class OrmObject<T> where T: class 
{ 
    static OrmObject() 
    { 
     using (var db = Db.Open()) 
      db.CreateTable<T>(); 
    } 

    public static T Single(Expression<Func<T, bool>> where) { ... } 
} 

Когда я пытаюсь метод вызова Single от общего параметр:

public static partial class CMSLib<TUser> where TUser : CMSLib<TUser>.UserBase 
{ 
    public static TUser SomeFunction() 
    { 
     var user = TUser.Single(...); // Here error 
     ... 
    } 
} 

я получил ошибку «TUser» является «параметра типа», который не действует в данном контексте

Как в этом случае я могу назвать TUser.Single метода (статический конструктор в OrmObject должны быть назван) ?

ответ

1

Просто позвоните OrmObject<TUser>.Single() вместо TUser.Single().

Смежные вопросы