は、私は私のマシン上でそれをシリアライズ 異なるマシンでクラスのシリアル化の結果が異なるのはなぜですか?
/// <remarks />
[GeneratedCode("xsd", "4.0.30319.1")]
[Serializable]
[DebuggerStepThrough]
[DesignerCategory("code")]
[XmlType(Namespace = "http://www.schemas.com/IntegrationApplication-instance")]
[XmlRoot(Namespace = "http://www.schemas.com/IntegrationApplication-instance", IsNullable = true)]
public class Header
{
private string operationField;
private string requestIdField;
private DateTime sendDateField;
private string senderSystemNameField;
/// <remarks />
[XmlElement(IsNullable = true)]
public string Operation
{
get
{
return operationField;
}
set
{
operationField = value;
}
}
/// <remarks />
public string RequestId
{
get
{
return requestIdField;
}
set
{
requestIdField = value;
}
}
/// <remarks />
public DateTime SendDate
{
get
{
return sendDateField;
}
set
{
sendDateField = value;
}
}
/// <remarks />
[XmlElement(IsNullable = true)]
public string SenderSystemName
{
get
{
return senderSystemNameField;
}
set
{
senderSystemNameField = value;
}
}
}
のように、SendDateが指定されているに見えたクラス
Header
を持っていますが、私は別のマシンのSendDate上のシリアル化コードを実行し、私の驚きのために何とか逃しています。私が使用するコードは、次のとおりです。
var header = new Header()
{
Operation = "new ope",
RequestId = "",
SendDate = DateTime.Now,
SenderSystemName = "asd"
};
var serializer = new XmlSerializer(typeof (Header));
var sb = new StringBuilder();
serializer.Serialize(new StringWriter(sb, CultureInfo.InvariantCulture), header);
なぜこのコードの結果はマシンによって異なりますか?
これは奇妙に見えます。他のマシンで全く同じコードを実行していますか?したがって、結果のXMLでは ''ノードは省略されていますか? –
両方のマシンで同じ.netフレームワークバージョン? –
私は同じ昨日、同じフレームワーク、別のコンパイラを持っていた。 1はVS2008でコンパイルされ、もう1つはVS2010(.net 4)でコンパイルされました。ヘッダー(GeneratedCode)は異なっていますか? – TheCodeKing