DataContract
を使用して XML にシリアル化する2 つの がありますDataContractSerializer
。
2 つの異なる に異なる名前空間を指定していますDataContract
がDataMember
、それぞれDataContract
に同じ POD タイプの があります。この POD は別の c# 名前空間にあります。
DataMember
含まれているタイプに応じて、これに使用する名前空間を指定する方法があるかどうかを知りたいです。
例えば:
namespace NamespaceShared
{
using System.Runtime.Serialization;
[DataContract]
public sealed class SharedType
{
[DataMember(IsRequired = true)]
public int ValueOne { get; set; }
[DataMember(IsRequired = true)]
public int ValueTwo { get; set; }
}
}
namespace NamespaceOne
{
using System.Runtime.Serialization;
using NamespaceShared;
[DataContract(Namespace = "http://namespace.one")]
public sealed class DataContractOne
{
[DataMember(IsRequired = true)]
//[SomeNamespaceAttribute("http://namespace.one")]
private SharedType SharedValue { get; set; }
}
}
namespace NamespaceTwo
{
using System.Runtime.Serialization;
using NamespaceShared;
[DataContract(Namespace = "http://namespace.two")]
public sealed class DataContractTwo
{
[DataMember(IsRequired = true)]
//[SomeNamespaceAttribute("http://namespace.two")]
private SharedType SharedValue { get; set; }
}
}
SomeNamespaceAttribute
上記のコードの機能を提供するものを探しています。
DataContract
注:残念ながら、レガシー コードをリファクタリング中であり、XML 形式を変更できないため、 をより適切に整理する方法についての提案を探しているわけではありません。