具有特定类型列表的扩展方法

extension method with type specific List

我想创建一个扩展方法来绑定一个列表,但是出现了这个错误。

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>();
    }

}

您的扩展方法是为 IList 而不是 IList 编写的,因为 IList<T> 不继承 IList,您需要在扩展方法中指定类型参数:

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