Как я могу вернуть класс, который имеет список классов внутри него из веб-службы WCF restful
Привет;
Я хочу вернуть класс MobileResult из моей веб-службы WCF Rest для каждой операции, которая возвращает это значение.
Я могу сделать это с классами, внутри которых нет списка классов. Но когда я возвращаю класс, в котором есть список классов, он не сериализует этот класс.
Итак, как я могу вернуть класс, в котором есть список классов? Или я могу это сделать?
Спасибо.
Что я уже пробовал:
Мой класс MobileResult;
[KnownType(typeof(SomeClass))] [KnownType(typeof(AnotherClass))] [DataContract] [Serializable] public class MobileResult { [DataMember] public bool result { get; set; } [DataMember] public object data { get; set; } public MobileResult(bool res, object obj) { result = res; data = obj; } }
Мой SomeClass, этот класс может прекрасно сериализоваться;
public class SomeClass { public int ID { get; set; } public string Name { get; set; } }
Мой Another Class, этот класс не сериализуется;
public class AnotherClass { public int ID { get; set; } public string Title { get; set; } public virtual ICollection<SomeClass> Classes{ get; set; } public AnotherClass{ Classes = new HashSet<SomeClass>(); } }
Операционный Контракт;
[OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetAnotherClass/{number}")] MobileResult GetAnotherClass(string number);
public MobileResult GetAnotherClass(string number) { try { AnotherClass aClass = new AnotherClass(); aClass.ID = 5; aClass.Title = "MyTitle"; aClass.Classes = GetClasses(); return new MobileResult(true, aClass); } catch { return null; } }