。ネットXMLシリアル化:名前空間プレフィックスコントロール
。ネットは、2つの主要なXMLシリアル化メカニズムを提供します。ただし、デフォルトで生成する名前空間プレフィックスは、カスタムプレフィックスの必要性を制限する内部メカニズムによって管理されます。
xmlserializernamespaces
名前空間エイリアスを制御する必要がある場合、 xmlserializernamespaces クラスが理想的です。シリアル化されたXMLの特定の名前空間のエイリアスを明示的に指定できます。
次のコードの例は、 xmlserializernamespaces
:
[xmlroot( "node"、namespace = "http:// flibble")]]
パブリッククラスmyType
{
[xmlelement( "Childnode")]
public string value {get;セット; }
}
静的クラスプログラム
{
static void main()
{
xmlserializernamespaces ns = new xmlserializernamespaces();
ns.add( "mynamespace"、 "http:// flibble");
XMLSERIALIZER XSER = new XmlSerializer(Typeof(myType));
xser.serialize(console.out、new mytype()、ns);
}
}
[XmlRoot("Node", Namespace = "http://flibble")]
public class MyType
{
[XmlElement("childNode")]
public string Value { get; set; }
}
static class Program
{
static void Main()
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("myNamespace", "http://flibble");
XmlSerializer xser = new XmlSerializer(typeof(MyType));
xser.Serialize(Console.Out, new MyType(), ns);
}
}
something in here
ランタイムは名前空間を動的に変更し、xmlattributeOverrides クラスを使用できます。特定のタイプのプロパティのデフォルトの名前空間設定をオーバーライドできます。
たとえば、次のコードは、 xmlattributeOverrides :
を使用して名前空間を変更する方法を示しています。
xmlattributeOverrides ovrd = new xmlattributeOverrides();
ovrd.add(typeof(mytype)、 "Childnode"、new XmlattributeOverrides()
{
{typeof(xmlelementAttribute)、new XmleLementAttribute( "ChildNode"、 "http:// alternateNamespace")}
});
XMLSERIALIZER XSER = new XmlSerializer(Typeof(myType)、ovrd);
xser.serialize(console.out、new mytype());
XmlAttributeOverrides ovrd = new XmlAttributeOverrides();
ovrd.Add(typeof(MyType), "childNode", new XmlAttributeOverrides()
{
{ typeof(XmlElementAttribute), new XmlElementAttribute("childNode", "http://alternateNamespace") }
});
XmlSerializer xser = new XmlSerializer(typeof(MyType), ovrd);
xser.Serialize(Console.Out, new MyType());
」を指します。 免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3