3

我在反序列化我的一个 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
    {
    }
}

****更新/解决方案****

解决了我遇到的特定问题。

4

1 回答 1

4

您的两个类具有完全相同的名称。在 C# 中没关系,因为它们位于不同的命名空间中 - 一个在 RRA.Core.Services.DataContracts.AR 中,一个在 RRA.Core.Services.DataContracts.ReferenceData 中。您需要为您的 XML 做同样的事情。

在两个 Status 类上,设置 DataContract 属性的 Namespace 和 Name 属性以区分它们。

于 2012-08-29T13:25:04.943 回答