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