Йонас: Я не думаю, что это тоже сработает. Вы можете сделать следующее:
ои определения классов:
public abstract class AbstractEntity : ...
public partial class AbstractContactEntity : AbstractEntity, ...
public sealed class EntityCollectionProxy<T> : IList<T>, System.Collections.IList
where T : AbstractEntity
Теперь я получаю объект от делегата и хочу его привести, и он не работает так, как я ожидаю.
var obj = resolver.DynamicInvoke (this.entity);
var col = obj as EntityCollectionProxy<AbstractEntity>;
obj
имеет типEntityCollectionProxy<AbstractContactEntity>
.
Ноcol
нулевой. Если я попробую обычное приведение (var col =(Entity...) obj
) Я получаю исключение.
Я ожидаю, что это сработает, поскольку типы являются связными. Что мне не хватает?