Thursday, July 08, 2010

XmlDataSource and its wonderfully helpful cache

From the looks of Google I've managed to stumble on a problem feature that's been causing joy for many years already, but it's a new one on me.

From the docs for XmlDataSource.EnableCaching it says the following:
The default value is true.

Which is a little strange for starters given some of its siblings (e.g. SqlDataSource and ObjectDataSource), but OK, fair enough.

It also says:
the data source will cache data until the XML file that it depends on is changed

Which would be fine, only my data source object isn't depending on a file, and I'm setting its Data property manually. Unfortunately, setting Data to what you want doesn't appear to invalidate the cache, and so you end up with what was there previously anyway.

But hang on a minute - the docs for XmlDataSource.Data specifically say:
If caching is enabled and you change the value of Data, the cache is invalidated.

I don't believe you!

Another bit of my life I'm never getting back, finding that little nugget...