在过去的一天里,我一直在为一个抛出 ExecutionEngineException 的网络服务而苦苦挣扎。我终于弄清楚 Silverlight 客户端不喜欢 IEnumerable<> 也不 IList<> 也不 List<> 作为返回类型。MyObject[] 很好。
我设法在示例解决方案中重现它:
服务说明:
[ServiceContract]
public interface IService
{
[OperationContract]
IEnumerable<Person> SomeStuff();
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service : IService
{
public IEnumerable<Person> SomeStuff()
{
return new Person[] { new Person { Name = "some person", ID = 42 } };
}
}
[DataContract]
public class Person
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int ID { get; set; }
}
在客户端,只需创建一个服务引用并调用该服务。服务返回后抛出异常。
任何关于导致问题的想法将不胜感激。