我正在使用REST Xml服务。
我有所有必要的类来执行此操作,(由编写服务的开发人员提供)但在我的结尾,我必须保存一些对数据库的响应,以执行我正在编写的应用程序的任务。
所以我已经标记了我需要将这些类放入DB中作为部分并扩展它们以便我可以从DbEntity
类继承,该类指定了ID属性,因此我可以使用EF将它们保存到DB中:
public interface IDbEntity
{
int ID { get; set; }
}
[Serializable]
public class DbEntity : IDbEntity
{
[IgnoreDataMember]
[XmlIgnore]
public int ID { get; set; }
}
我现在面临的问题是,当服务调用被反序列化时,我得到了错误
第1行位置113的错误。'Element''来自命名空间''的'ElementName'不是预期的。期待元素'_x003C_ID_x003E_k__BackingField'
我只是这样打电话:
var response = await client.PostAsXmlAsync<TReq>("Some/API/Call", req);
TResp val = await msg.Content.ReadAsAsync<TResp>(response)
原始类中的所有属性都使用DataMember
属性指定了Orders,并且我已明确标记了我的数据库属性,但无效。
有什么方法可以让它工作吗? - 即让DataContractSerializer
实际上忽略我在去序列化时标记为要忽略的属性?
另外,这些被忽略的属性也在调用时传递给服务 - IgnoreDataMember实际上做了什么吗?