The problem is the Foo
class which should be:
public class Foo : IFoo
{
public ICollection<Bar> Bars { get; set; }
}
Or if you want to use ICollection<IBar>
:
IBar[] MyBars = { bar1, bar2 };
Foo MyFoo = new Foo( );
MyFoo.Bars = MyBars.ToList( );
Or the more elegant solution:
Bar[] MyBars = { bar1, bar2 };
Foo MyFoo = new Foo( );
MyFoo.Bars = MyBars.ToList<IBar>( ); //Cast from Bar to IBar
Infact the problem happened because you could't convert ICollection<Bar>
to ICollection<IBar>
.