我无法找到简单问题的答案:如何手动清除ObjectDataSource缓存 - 从我的C#代码。在一些DevExpress组件中,将Visual Studio 2010中的ASP.NET与.NET v4结合使用。如何手动清除ObjectDataSource缓存
我:
<asp:ObjectDataSource ID="SomeId" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="SomeMethod" TypeName="SomeType" EnableCaching="True" CacheDuration="9999" CacheExpirationPolicy="Absolute"> </asp:ObjectDataSource>
我看过类似的问题:Where does the ObjectDataSource cache data?哪个环节:ObjectDataSource.EnableCaching Property。它表示缓存存储在缓存对象(Page.Cache)中。
我发现的所有其他建议都会导致Cache对象。问题是:Cache对我来说是空的,而Cache.Remove(ObjectDataSourceID.CacheKeyDependency);什么也没做。
缓存机制即使在缓存为空时也能正常工作。将EnableCaching更改为false会禁用缓存,但将其设置为true后,会使用缓存的旧值启用缓存。
'ObjectDataSource'使用专用的'SqlDataSourceCache'实例来存储数据。这个私有成员只会被内部的'Cache'属性暴露出来,所以除非你通过反射破坏封装,否则你将无法访问它。 – 2012-03-02 11:00:35