私のXmlSerializerコードが、必要以上に冗長なXmlを出力していますが、どのように出力設定を適切に制御できますか?これはコードです:C#XmlSerializerオプションを正しく設定していますか?
var stream = new MemoryStream();
var xmlSerializer = new XmlSerializer(objectToSerialize.GetType());
xmlSerializer.Serialize(stream, objectToSerialize);
string xml = encoding != null ? encoding.GetString(stream.ToArray())
: Encoding.Default.GetString(stream.ToArray());
、出力は次のようになります。nilを=:
- はXSIを削除します。私はそうのようなXMLをフォーマットすることができるようにしたい
<?xml version="1.0"?> <ArrayOfProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Product> <Id>1</Id> <ProductCode>A</ProductCode> <ProductDescription>Product A</ProductDescription> <Obsolete xsi:nil="true"></Obsolete> </Product> </ArrayOfProduct>
値のない行から "true"
<Obsolete></Obsolete>
のような空のタグを簡略化して<Obsolete />
あなたが属性を持つクラス構造をコピーする場合には参考になる にある –