Этот вопрос может иметь несколько аспектов, поэтому, пожалуйста, прочитайте сначала.
Предположим, что у вас есть структура с несколькими небольшими целочисленными значениями, которая хорошо упаковывается в Int64, и в то время как вы хотите использовать свою структуру как тип в C #вы хотите, чтобы он отображался как In64 через веб-методы - так, чтобы WSDL имел его, и вы сохраняли базовую способность REST (простые типы делают возможным вызов GET).
Наиболее близким к тому, что я обнаружил, является SqlDateTime- он автоматически трансформируется в dateTime в WSDL (есть атрибут, который, кажется, управляет эквивалентностью типов XSD / WSDL плюс IXmlSerializable), но этого недостаточно.Веб-метод по-прежнему распознается как «имеющий сложные параметры» и, следовательно, становится недоступным для запросов GET.
Обновление: при вызовах XSD / WSDL и SOAP соблюдение эквивалентности типов выполняется совершенно нормально - проблема заключается в вызове GET- путь URL RESTful не генерируется вообще.
Поиск информации о возможных дополнительных атрибутах, интерфейсах, точках подключения, если кто-то наткнулся на структуру или внутренний класс, которому удалосьвыполнить полную эквивалентность типов с любым «примитивным» скалярным типом (DayTime не совсем примитивен, но все же получает такую обработку).Также, если soemone знает способ установить более сильную эквивалентность типов или добавить / пометить структуру, которая будет рассматриваться как простой (скалярный) тип значения - еще лучше.
Пожалуйста, не пишите, просто чтобы сказать что-нибудь противное или проповедовать частную идеологию. Это серьезный вопрос, относящийся к серой зоне, для людей, которые знают свой путь в Reflector и читают код. Если вы думаете, что можете идеологизировать это, у вас даже нет понятия о проблеме.Однако, если вы можете указать на реальный код, который вызывает / принимает решение о том, что будет обслуживаться с помощью GET-запроса, пожалуйста, отправьте сообщение, даже если этим вы докажете невозможность расширения эквивалентности типов для GET-запросов.
Oh и CLR2.x / 3.x.
Спасибо тем, кто помогает, и тем, кто не мешает.