3

DTO の 1 つを逆シリアル化するときに以下の例外を受け取りました。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

2 つのクラスの名前がまったく同じです。C# では問題ありません。名前空間が異なるためです。1 つは RRA.Core.Services.DataContracts.AR にあり、もう 1 つは RRA.Core.Services.DataContracts.ReferenceData にあります。XML についても同じことを行う必要があります。

両方の Status クラスで、DataContract 属性の Namespace プロパティと Name プロパティを設定して、それらを区別します。

于 2012-08-29T13:25:04.943 に答える