Какие типы нельзя использовать для WCF?
-
22-09-2019 - |
Вопрос
Я точно знаю, что Type
нельзя использовать при передаче в службу WCF.Есть ли у кого-нибудь полный список?
Решение
Я не уверен, что кто-то удосужился составить список, и я не уверен, что его составление имеет какой-либо смысл.Вместо этого существуют требования, которым тип должен соответствовать, чтобы его можно было использовать в контрактах WCF.Главным образом, он должен быть сериализуемым.
Я думаю, что ответственность программиста заключается в том, чтобы убедиться, что все типы, используемые в контрактах, сериализуемы, а также убедиться, что все пользовательские типы сериализуются и десериализуются правильно.
Другие советы
Все, что вы хотите использовать в службе WCF, во-первых, должно быть сериализуемым, а во-вторых, это должно иметь возможность выражаться с использованием схемы XML.Кроме того, WCF по своей природе совместим, поэтому все, что слишком специфично для .NET (например, исключения, .NET Type
и так далее) следует избегать.
Все, что не подлежит сериализации, исключено с самого начала, и все, что не может быть выражено в схеме XML, также не может быть использовано.Сюда входят интерфейсы (вы можете использовать только конкретные классы), а также исключаются универсальные типы, поскольку схема XML не знает, как обрабатывать универсальные типы.
С вами все в порядке, если вы придерживаетесь базовых типов (int, string, datetime и т. д.) и всего, что напрямую состоит из этих типов.
Все, что не отмечено Serializable
, для начинающих.