我無法找到簡單問題的答案:如何手動清除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