Ошибка с сервисом WCF, отмечающим базовый тип - PullRequest
2 голосов
/ 06 июля 2011

Я получаю эту ошибку при использовании службы WCF:

Тип '**' не может наследоваться от типа, который не помечен как DataContractAttribute или SerializableAttribute.
Попробуйте пометить базовый тип «Microsoft.WindowsAzure.StorageClient.TableServiceEntity» с помощью DataContractAttribute или SerializableAttribute или удалить их из производного типа.

Мое приложение Silverlight может использовать его, но с веб-приложением MVC я получаю эту ошибку ...

Может кто-нибудь помочь мне решить эту проблему

Ответы [ 2 ]

0 голосов
/ 06 июля 2011

Я проверил Microsoft.WindowsAzure.StorageClient dll и у меня он есть в обоих проектах.

У меня есть реализация этого класса:

 public class Template : TableServiceEntity
    {
        public Template()
        {
            this.PartitionKey = string.Empty;
            this.RowKey = Guid.NewGuid().ToString();
        }(...)
0 голосов
/ 06 июля 2011

Трудно сказать без подробностей вашей реализации, но это звучит как несоответствие в том, как определения классов установлены в каждом приложении. Может случиться так, что проект приложения silverlight имеет ссылку на dll Microsoft.WindowsAzure.StorageClient, а другой нет, или может быть, что они ссылаются на разные версии, и он помечен как сериализуемый только в одной из них. Все данные, передаваемые в / из службы WCF, должны быть как-то сериализуемыми.

Как вы делитесь определениями классов для базового класса контракта данных и унаследованного класса между службой WCF и двумя различными приложениями? Можете ли вы опубликовать более подробную информацию о контракте данных, который вызывает ошибку сериализации?

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