Я внедряю приложение Silverlight со службой RIA WCF на стороне сервера, и у меня очень странное поведение.
На данный момент служба очень проста и имеет только несколько методов, всеони помечены атрибутом [Invoke]
.Эти методы примерно такие:
[Invoke]
MyEntity DoWorkAndReturnEntity(string someParameter)
{
var entity = new MyEntity();
//Do some preocessing...
return entity;
}
, где тип MyEntity
имеет одно открытое свойство с атрибутом [Key]
:
public class MyEntity
{
[Key]
public int Key {get;set;}
}
Хорошо, если я попытаюсь скомпилироватьРешение, я получаю следующую ошибку:
Операция с именем 'DoWorkAndReturnEntity' не соответствует требуемой подписи.Возвращаемые типы должны быть сущностью, коллекцией сущностей или одним из предопределенных сериализуемых типов.
А теперь самое интересное.Если я добавлю открытый фиктивный метод, который возвращает объект того же типа, но с атрибутом no Invoke
, то он компилируется и работает отлично!
public MyEntity __Dummy()
{
return null;
}
Это происходит со всемиметоды, независимо от типа возвращаемого объекта.Поэтому я должен добавить фиктивный метод для каждого возвращаемого типа объекта.
Я полностью озадачен.Что здесь происходит?