私はリアクティブ拡張の初心者です。Gideon Engelberth は、私の質問で Reactive Extension について素晴らしい回答をくれました。
LINQ または Rx を使用して、1 つのメソッド チェーンで HTML の img url を BASE64 文字列に変換する方法
ここで、IObservable の戻り値を XDocument インスタンスに割り当てる方法という 2 番目の質問があります。
ギデオンは私に以下のサンプルをくれました。
public IObservable<Unit> ReplaceImageLinks(XDocument document)
{
return (from element in GetImages(document)
let address = new Uri(element.Attribute("src").Value)
select (from data in DownloadAsync(address)
select Convert.ToBase64String(data)
).Do(base64 => element.Attribute("src").Value = base64)
).Merge()
.IgnoreElements()
.Select(s => Unit.Default);
}
私はこのようにしたいと思います。つぼみ 難しそうですね…
public void Convert(XDocument input, out XDocument output)
{
output = ReplaceImageLinks(input);
}