Варианты использования для CollectionDataContractAttribute? - PullRequest
0 голосов
/ 05 ноября 2010

Я работаю с существующей кодовой базой, и есть много классов, таких как:

[Serializable]
[CollectionDataContract
(
    Name = "DogList",
    ItemName = "Dog",
    Namespace = "Namespace"
)]
public class DogList : List<Dog>
{
}

Согласно документации, которую я нашел здесь: http://msdn.microsoft.com/en-us/library/aa347850.aspx использование этого атрибута isnне поощряется

Какой был бы сценарий использования для написания такого кода?Это выглядит избыточным для меня.

1 Ответ

1 голос
/ 05 ноября 2010

из случаев, которые я видел в общем использовании, он используется для принудительного применения типа к коллекции. в приведенном выше примере, если вы опустите атрибут, тогда среда выполнения сериализуется в ArrayOfDogList, и множество конструкций может десериализоваться из ArrayOf, где, как если бы у вас был атрибут, у вас есть для десериализации к типу DogList, который был бы несколько ограничительным и, как говорится, «ставит под угрозу взаимозаменяемость коллекции».

Я немного удивлен твоим примером выше. Большинство случаев использования, которые я видел, было бы больше похоже на

[CollectionDataContract(...)]
public class DogList : List<Dog> 
{ 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...