我有一个FileSyncProvider并且我编写了 FullEnumerationSimpleSyncProvider 的自定义实现。当文件从FullEnumerationSimpleSyncProvider同步到FileSyncProvider时,它们是正确创建的,但是是零字节。
当在另一个方向(FileSyncProvider 作为源)同步时,一切都按预期工作。
这是我的IFileDataRetriever实现。我在FileStream属性 setter 和 getter 上放置了断点,并且Stream的Size属性始终正确,从不为零。实际的Stream本身是一个MemoryStream,这会导致任何问题吗?
public class FileDataRetriever : IFileDataRetriever
{
private System.IO.Stream fileStream;
public string AbsoluteSourceFilePath
{
get
{
throw new NotImplementedException("AbsoluteSourceFilePath is not supported for this implementation of IFileDataRetriever");
}
}
public FileData FileData { get; set; }
public System.IO.Stream FileStream
{
get
{
return this.fileStream;
}
set
{
this.fileStream = value;
}
}
public string RelativeDirectoryPath { get; set; }
}
更新:
如果作为实验,我将代码修改如下,则会创建一个 5 字节的文件:
public System.IO.Stream FileStream
{
get
{
return new MemoryStream(new byte[] { 1, 2, 3, 4, 5 });
}
set
{
this.fileStream = value;
}
}
所以这告诉我它应该与 MemoryStream 一起正常工作。如果我在 getter 上放置一个断点,它在被调用时总是看起来有效 - 它具有正确的大小等,而不是 0 作为大小。