Как сохранить пользовательский тип данных через DataContext? - PullRequest
1 голос
/ 08 апреля 2011

Я использовал DataContractSerializer для сохранения пользовательских данных, но сейчас Я хочу использовать DataContext для моей базы данных. Но система существовала, поскольку ниже не может быть сохранен через DataContext.

class Data
{
   public DataType1;
   public DataType2;
}

Кажется, что эти API не могут поддерживать сохранение определенного пользователем типа данных. Я не хочу разделять все элементы данных, потому что эта система везде использует эти структуры. Если я изменил структуру, это будет трудно поддерживать, и DataType1 содержит член List <>. Я не знаю, как это сделать, хотя отделяя эта структура.

Не могли бы вы дать мне несколько советов? Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2011

Уважаемые все: но теперь я использовал DataContext

DataContext не может сериализовать определенный пользователем тип, даже отмеченный [Serializable].

Обходной путьКажется, теперь все члены разделяются на один класс .....

Спасибо.

0 голосов
/ 08 апреля 2011

Кажется, что эти API не могут поддерживать сохранение определенного пользователем типа данных

Если бы это было так, API был бы совершенно бесполезным.

DataContractSerializer имеет то, чтокажутся противоречивыми правилами в попытке сделать сериализацию более неявной.Например, вы можете сериализовать общедоступный тип, который имеет общедоступные свойства и общедоступный конструктор по умолчанию, без необходимости украшать его атрибутом DataContract или любым его членом с атрибутом DataMember.

Мне кажется, чтопо крайней мере, вам нужно сделать Data публичным классом.Скорее всего, вам нужно будет проверить другие ваши классы, чтобы убедиться, что они неявно сериализуемы или вы явно пометили их атрибутами DataContract и DataMember.

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