Невозможно привести из родительского класса в дочерний класс - PullRequest
81 голосов
/ 12 июня 2009

Я пытаюсь привести из родительского класса в дочерний класс, но получаю InvalidCastException. Дочерний класс имеет только одно свойство типа int. Кто-нибудь знает, что мне нужно делать?

Ответы [ 12 ]

1 голос
/ 30 сентября 2014

Вариант подхода сериализации для тех, кто использует ServiceStack:

var child = baseObject.ConvertTo<ChildType>();

или более подробный:

var child = baseObject.ToJson().FromJson<ChildType>();

Сериализация ServiceStack может быть очень быстрой и все, но ясно, что это не решение для массовых преобразований в передачах с малой задержкой или для очень сложных типов. Это, вероятно, очевидно для любого, кто использует ServiceStack, но подумал, что уточнить в ожидании комментариев.

1 голос
/ 15 июня 2009

Для приведения объект фактический должен иметь тип, равный или производный из типа, который вы пытаетесь привести к ...

или, чтобы сформулировать это противоположным образом, Тип, к которому вы пытаетесь привести его, должен совпадать с базовым классом или фактическим типом объекта.

если ваш фактический объект имеет тип Baseclass , то вы не можете привести его к производному классу Type ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...