FileSyncProviderがあり、 FullEnumerationSimpleSyncProviderのカスタム実装を作成しました。ファイルがFullEnumerationSimpleSyncProviderからFileSyncProviderに同期されると、ファイルは正しく作成されますが、ゼロバイトです。
他の方向(ソースとしてFileSyncProvider)で同期する場合、すべてが期待どおりに機能します。
これは私のIFileDataRetrieverの実装です。FileStreamプロパティのsetterとgetterにブレークポイントを設定しましたが、 StreamのSizeプロパティは常に正しく、ゼロになることはありません。実際のストリーム自体は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で正常に動作するはずであることを示しています。ゲッターにブレークポイントを設定すると、呼び出されたときに常に有効に見えます。サイズは0ではなく、正しいサイズなどです。