我在反序列化我的一个 DTO 时收到以下异常,有没有办法解决这个问题而不必使用 IXmlSerializable?
“类型‘RRA.Core.Services.DataContracts.ReferenceData.Status’和‘RRA.Core.Services.DataContracts.AR.Status’都使用命名空间‘’中的 XML 类型名称‘Status’。使用 XML属性来为类型指定唯一的 XML 名称和/或命名空间。”
这是 DTO:
namespace RRA.Core.Services.DataContracts.AR
{
using System.Runtime.Serialization;
/// <summary>
/// Status data object
/// </summary>
[DataContract]
public class Status : RRA.Core.Services.DataContracts.ReferenceData.Status
{
}
}
****更新/解决方案****
This解决了我遇到的特定问题。
最佳答案
您的两个类具有完全相同的名称。在 C# 中没关系,因为它们位于不同的命名空间中 - 一个在 RRA.Core.Services.DataContracts.AR 中,一个在 RRA.Core.Services.DataContracts.ReferenceData 中。您需要为 XML 做同样的事情。
在两个 Status 类上,设置 DataContract 属性的 Namespace 和 Name 属性以区分它们。
关于c# - 类型 'X' 和 X' 都使用命名空间 'X' 中的 XML 类型名称 '' 。使用 XML 属性为类型指定唯一的 XML 名称和/或命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12178888/