Я реализую приложение Silverlight с сервисом службы WCF RIA на стороне сервера, и я испытываю очень странное поведение.Служба RIA нуждается в фиктивных общедоступных, непривязанных методах для компиляции
На данный момент сервис очень прост и имеет только несколько методов, все из которых отмечены атрибутом [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;}
}
Ну, если я пытаюсь скомпилировать решение, я получаю следующее сообщение об ошибке:
Operation named 'DoWorkAndReturnEntity' does not conform to the required signature. Return types must be an entity, collection of entities, or one of the predefined serializable types.
И теперь идет смешная часть. Если я добавлю публичный фиктивный метод, который возвращает объект того же типа, но имеет атрибут noInvoke
, он компилируется и работает отлично!
public MyEntity __Dummy()
{
return null;
}
Это происходит со всеми методами, независимо от типа возвращаемого объекта. Поэтому я должен добавить фиктивный метод для каждого типа возвращаемого объекта.
Я полностью озадачен. Что здесь происходит?