类型'X'和X'都使用来自命名空间''的XML类型名称'X'。使用XML属性为类型指定唯一的XML名称和/或命名空间

时间:2012-08-29 13:16:43

标签: c# asp.net-mvc-3 xml-serialization

在反序列化我的一个DTO时,我收到以下异常,是否有任何解决方法而不必使用IXmlSerializable?

“Types”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
    {
    }
}

**** UPDATE /溶液****

This解决了我遇到的特殊问题。

1 个答案:

答案 0 :(得分:4)

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

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