I registered this as a problem on the Google Code DD4T site here .
This seems to be because contravariance is not supported by List and IList, which means strings like:
IList<ICategory> IComponent.Categories { get { return Categories as IList<ICategory>; } }
in class ContentModel will never work. The suggestion of digging around is to change this to IEnumerable, which supports contravariance.
source share