2015-05-03 29 views
0

enter image description here类型具体名单

扩展方法我想创建绑定列表一种推广方法,但得到这个错误。

menuItem.Children.Bind(); 

public static class Extensions 
{ 
    public static void Bind(this IList list) 
    { 
     //some stuff 
    } 
} 

class MenuItemMap : Mapper<MenuItem> 
{ 
    public MenuItemMap() 
    { 
     Id(x => x.MenuItemId); 
     Map(x => x.Text); 
     HasMany(x => x.Children).KeyColumn("ParentId"); 
     References(x => x.Parent); 
    } 
} 

public class MenuItem : BaseClass<MenuItem> 
{ 
    public virtual int MenuItemId { get; set; } 
    public virtual string Text { get; set; } 
    public virtual IList<MenuItem> Children { get; set; } 
    public virtual MenuItem Parent { get; set; } 

    public MenuItem() 
    { 
     Children = new List<MenuItem>(); 
    } 

} 

回答

3

您的扩展方法是IList的写不IList的<牛逼>因为IList<T>不继承的IList,你需要指定的扩展方法类型参数:

public static class Extensions 
{ 
    public static void Bind<T>(this IList<T> list) 
    { 
     //some stuff 
    } 
}