Попробуй это.Вам нужно будет добавить using System.Linq;
в начало исходного файла, если его там еще нет.
List<IBar> IFoo.manyBars
{
get { return manyBars.Cast<IBar>().ToList(); }
set { manyBars = value.Cast<CBar>().ToList(); }
}
Обратите внимание, что это выделит и скопирует новый массив на каждый доступ в собственность.Если это не то, что вам нужно, вы должны рассмотреть альтернативный подход, такой как предоставление свойства с использованием типа IEnumerable<IBar>
.
Использование List<IBar>
также означает, что кто-то может попытаться сделать anObject.manyBars.Remove(0)
, что сделает абсолютно ничего к списку, хранящемуся в anObject
, поскольку копия возвращается.