下面的代码试图从web服务中获取Appication对象。我得到了一个例外:
'_applicationFormsList._listApplicationPage._listField._applicationFieldID',={“无法创建类型为BusinessEntities.WEB.IApplicationField的实例。类型是接口或抽象类,不能实例化。路径BusinessEntities.WEB.IApplicationField行1,位置194”}。
我不明白为什么将FieldList更改为接口会在反序列化对象方面造成问题。任何指点都是非常感谢的。
Task<HttpResponseMessage> task = HttpClientDI.GetAsync(someUri);
HttpResponseMessage response = task.Result;
HttpClientHelper.CheckResponseStatusCode(response);
try
{
Application application = response.Content.ReadAsAsync<ApplicationPage>().Result;
return application;
}
catch (Exception ex)
{
throw new ServiceMustReturnApplicationException(response);
}
[Serializable]
public class ApplicationPage
{
#region Properties
public int PageOrder { get; set; }
public string Title { get; set; }
public string HtmlPage { get; set; }
public int FormTypeLookupID { get; set; }
List<IApplicationField> _listField = new List<IApplicationField>();
public List<IApplicationField> FieldList
{
get { return _listField; }
set { _listField = value; }
}
}发布于 2012-08-01 03:25:34
序列化程序不能反序列化包含接口的任何对象图,因为它不知道在重新补充对象图时实例化的具体类。
https://stackoverflow.com/questions/11748912
复制相似问题