Нужно ли это быть сериализуемым, а что нет?Что требуется для возврата контракта на операцию?
кажется, что, когда я использую пользовательский класс, я бы что-то вроде:
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest)]
IECInstance testme();
и в определении его:
public IECInstance testme()
{
IECInstance tst = ...;
return tst;
}
Я думал, что там было что-то требуется такое что такого рода вещи вернутся. RIght теперь возвращает 504, ошибку тайм-аута.
Возможно, этот предмет не является сериализуемым, и это была большая вещь, о которой я думал, была проблема.
Интерфейс для IECInstance является:
public interface IECInstance :
IECNamedValueContainer,
IECValueContainer,
IEnumerable<IECPropertyValue>,
IEnumerable,
IECDump,
ICloneable,
IExtendable
{
...
}
и я думал, что по крайней мере один, если не больше из этих пунктов были сериализации, но сам интерфейс не помечены в верхней части с : [Serialized] или [Serializable]
Что требуется для типа возвращаемого значения?
Вы должны применить Serializable атрибут к вашему типу возвращаемого значения. Не забывайте, что атрибут Serializable не наследуется, поэтому, если вы примените его к интерфейсу, это не сработает. Вам нужно применить его непосредственно к классу. –
Что делать, если объект не может быть изменен, это из библиотеки DLL? – Fallenreaper
Кроме того, если вы еще не убедитесь, что добавили [ServiceContract] над своим интерфейсом. – MightyLampshade