好的,下面的代码我已经生产了一年多没有变化.它一直运作良好.在过去一个月内,少数机器报告xml文档完全为空.它们甚至不包含xml标头.我无法复制突然变空的文件,也无法建议一种方法.我希望有人有类似的问题,他们解决了.
大多数使用此代码的机器已经使用了大约一年,如果不是更多的话.用于在其中包含数据和列表的空文件.文件不会同时序列化.在程序退出之前,一个接一个地保存/序列化.
我的问题:下面的代码是否有可能创建一个空文件?还有什么会导致他们突然变空?有没有其他人在过去一个月中遇到过XML-serializer的问题?(这个问题仅发生在过去一个月中已稳定3个月以上的版本.)
如果您有疑问或我遗失了什么请问.还有各种各样的类型,我序列化...所以如果你可以想象它我可能有一些类似的序列化.
public class BackEnd<T> {
public string FileSaveLocation = "this gets set on startup";
public bool DisabledSerial;
public virtual void BeforeDeserialize() { }
public virtual void BeforeSerialize() { }
public virtual void OnSuccessfulSerialize() { }
protected virtual void OnSuccessfulDeserialize(ListBackEnd<T> tmpList) { }
protected virtual void OnDeserialize(ListBackEnd<T> tmpList) { }
public virtual void serialize()
{
if (DisabledSerial)
return;
try
{
BeforeSerialize();
using (TextWriter textWrite = new StreamWriter(FileSaveLocation))
{
(new XmlSerializer(this.GetType())).Serialize(textWrite, this);
Debug.WriteLine(" [S]");
textWrite.Close();
}
OnSuccessfulSerialize();
}
catch …Run Code Online (Sandbox Code Playgroud)