There's two parts to the C# SDK. The first part does the actual evaluation (which uses the same data that it was loaded with for the entirety of its use, unless the data is manually replaced). The second part fetches the data to load it with and that part supports caching. It's in-memory by default, but it's extensible and could be replaced by the user as needed.