У меня возникли некоторые трудности с услугами WCF RIA, аналогичными задаче, указанной в this thread.Ria Services Передача сложного объекта в качестве параметра метода службы домена запроса
Метод domainervice, который я создаю (метод Query), должен принимать сложный параметр объекта. Пример метода DomainService:
public ComplexObjectResult GetComplexObject(ComplexObjectParameter test)
{
//do stuff
}
объект параметр:
public class ComplexObjectParameter
{
[Key]
public decimal ID { get; set; }
... other fields
}
Я получаю эту ошибку компиляции: Ошибка 70 Параметр «тест» входа операции домена «GetComplexObject» должен быть один из предопределенных сериализуемым типы.
После поиска в Интернете я нашел this msdn thread. В нем указано, что это ограничение служб RIA, и нить не указывает на приемлемые способы обхода.
Теперь, кажется, какие-то грязные обходные пути:
Изменить комплексный параметр для ввода строки и сериализации/десериализации в parameterobject OURSELF который я нахожу очень Hacky решение.
Используйте тег [Invoke] для метода службы домена и потеряйте все функции отслеживания RIA, для которых я использую RIA в первую очередь.
Существуют ли альтернативы для упомянутых решений, которые имеют меньше недостатков? Кто-то нашел более элегантное обходное решение этой проблемы?
Благодаря
Я пошел со вторым вариантом Стефана. Возвращаемые мною сложные типы были только на клиенте, так что потеря функции отслеживания не была для меня проблемой. Подумайте о том, чтобы в следующий раз включить потенциальные решения (даже грязные) в ответы ... Тогда я бы проголосовал за вопрос и ответ! –